用C語言實現PHP的base64 encode函式

2022-09-12 16:36:22 字數 756 閱讀 9986

最近寫的程式要用到base64_encode,網上一搜「c語言 base64」出來一堆**,但是我向來是不憚以最壞的惡意來推測這些**的。於是看了一下php原始碼,base64_encode函式定義在ext\standard\base64.c檔案中。我把它改寫了一下,需要注意記憶體是動態分配的,使用完之後記得free掉,否則會造成記憶體洩露。

unsigned char *base64_encode(const unsigned char *str)

; static const char base64_pad = '=';

const unsigned char *current = str;

int length = strlen(str);

unsigned char *p;

unsigned char *result;

if ((length + 2) < 0 || ((length + 2) / 3) >= (1

<< (sizeof(int) * 8 - 2)))

result = (unsigned char *)malloc(((length + 2) / 3) * 4 * sizeof(char) + 1);

p = result;

while (length > 2)

if (length != 0) else

}*p = '\0';

return result;

}

用C語言實現FlappyBird

在開始遊戲之前,我們先了解一些輔助函式 void gotoxy int x,int y 將游標調整到 x,y 的位置 void hidecursor 隱藏游標 setconsolecursorinfo getstdhandle std output handle cursor info 我們使用乙個...

用c語言實現的FFT

一 對fft的介紹 1.fft fast fourier transformation 即為快速傅利葉變換,是離散傅利葉變換的快速演算法,它是根據離散傅利葉變換的奇 偶 虛 實等特性,對離散傅利葉變換的演算法進行改進獲得的。2.fft演算法的基本原理 fft演算法是把長序列的dft逐次分解為較短序列...

Base64 編譯碼C語言實現

本文繼續前文 http blog.csdn.net hegch archive 2009 05 01 4141125.aspx 前文講述了如何實現base64的編碼,本文給出解碼的 這裡給出的 是整個完整的編碼和解碼,將加密之後的串解密得到原來的字串。具體 如下 這裡新增了兩個方法find pos和...