自己写的Base64编码算法(纯C语言)
不简单!!上图
代码不是很多!!看了Base64加密规则后自己打的!!求支持
代码在下面
<P><FONT color=green> </P>
<BLOCKQUOTE>
<P><FONT color=green>#include "stdio.h"
#include "windows.h"
/*
By:迷 雾 少 年
QQ:1462063314
*/
intBase_(char *szSting);
intAsciiToB(char p )
{
int i = 0;</FONT></P>
<P><FONT color=green> if(p>=0 && p<=25)
i = 65 + p;
if(p>=26 && p<=51)
i = 71 + p;
if(p>=52 && p<=61)
i =p - 4;</FONT></P>
<P><FONT color=green> if(p==62) i = '+';
if(p==63) i = '/';
return i;
}</FONT></P>
<P><FONT color=green>//把3个字符转为Base64格式的字符
intBase64(char *_Char,char *Resu)
{
int _Data = 0;
int _Int_={0};
//_Data = 5533549;
_Data = Base_(_Char);
//_Data =7929856;
Resu = _Data & 0x3F;
// 0xFC0
Resu = (_Data & 0XFC0) >> 6;
// 0x3F000
Resu = (_Data & 0x3F000) >> 12;
// FC0000
Resu = (_Data & 0xFC0000) >> 18;
//Resu = (_Data & 0x3F000000) >> 24;
/*查表咯*/
Resu = AsciiToB(Resu);
Resu = AsciiToB(Resu);
Resu = AsciiToB(Resu);
Resu = AsciiToB(Resu);
return 0;
}
intBase_(char *szSting,int _twp)
{
inti = 0;
char *p = (char*)&i;
*p = szSting;
p++;
*p = szSting;
p++;
*p = szSting;
p++;
*p = szSting;
return i;
}
int _Base_(char *In,char *_Out)
{
char Res={0};
int i = 0;
int iz;
char Out={0};
char out={0};
int lenth = strlen(In);
for (i = 0; i < lenth;)
{
lstrcpynA(Res,In + i,4);
Res=0;
Base64(Res,Out);
lstrcatA(out,Out);
i=i+3;
//还剩余1字节
if(lenth-i == 2)
{
iz = 1;
}
if(lenth-i == 1)
{
iz = 2;
}
}
//把A都替换为=
lenth = strlen(out) - 1;
for (i=0; i < iz; i++)
{
out = '=';
}
lstrcpyA(_Out,out);
return 0;
}
int main()
{
char sz_Out_String={0};
char out={0};
printf("请输入要转换的字符C:");
scanf("%s",sz_Out_String);
_Base_(sz_Out_String,out);
printf("\n转换结果%s\n",out);
return 0;
}</FONT></P>
2楼自坐 强烈支持楼主ing…… 奇怪,这么好的算法怎么没人来看。 求顶求支持!!! 支持支持一下,老迷{:9_240:}不过对我没用 流星编程 发表于 2015-2-27 19:42
支持支持一下,老迷不过对我没用
额....谢谢顶!!! 强烈支持楼主ing…… {:9_230:}楼主厉害啊,然而我只会xor
页:
[1]