鱼C论坛

 找回密码
 立即注册
查看: 3169|回复: 8

[作品展示] 自己写的Base64编码算法(纯C语言)

[复制链接]
发表于 2015-2-27 08:43:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不简单!!
上图
6.png
代码不是很多!!看了Base64加密规则后自己打的!!求支持
代码在下面

  1. <P><FONT color=green>[hide] </P>
  2. <BLOCKQUOTE>
  3. <P><FONT color=green>#include "stdio.h"
  4. #include "windows.h"
  5. /*
  6.   By:迷 雾 少 年
  7.   QQ:1462063314
  8. */
  9. int  Base_(char *szSting);
  10. int  AsciiToB(char p )
  11. {
  12. int i = 0;</FONT></P>
  13. <P><FONT color=green> if(p>=0 && p<=25)
  14.   i = 65 + p;
  15. if(p>=26 && p<=51)
  16.   i = 71 + p;
  17. if(p>=52 && p<=61)
  18.   i =  p - 4;</FONT></P>
  19. <P><FONT color=green> if(p==62) i = '+';
  20. if(p==63) i = '/';
  21. return i;
  22. }</FONT></P>
  23. <P><FONT color=green>//把3个字符转为Base64格式的字符
  24. int  Base64(char *_Char,char *Resu)
  25. {
  26. int _Data = 0;
  27. int _Int_[4]={0};
  28. //_Data = 5533549;
  29. _Data = Base_(_Char);
  30. //_Data =7929856;
  31. Resu[3] = _Data & 0x3F;
  32. // 0xFC0
  33. Resu[2] = (_Data & 0XFC0) >> 6;
  34. // 0x3F000
  35. Resu[1] = (_Data & 0x3F000) >> 12;
  36. // FC0000
  37. Resu[0] = (_Data & 0xFC0000) >> 18;
  38. //Resu[0] = (_Data & 0x3F000000) >> 24;
  39. /*查表咯*/
  40.    Resu[0] = AsciiToB(Resu[0]);
  41.    Resu[1] = AsciiToB(Resu[1]);
  42.    Resu[2] = AsciiToB(Resu[2]);
  43.    Resu[3] = AsciiToB(Resu[3]);
  44. return 0;
  45. }
  46. int  Base_(char *szSting,int _twp)
  47. {
  48.     int  i = 0;
  49. char *p = (char*)&i;
  50. *p = szSting[2];
  51. p++;
  52. *p = szSting[1];
  53. p++;
  54. *p = szSting[0];
  55. p++;
  56.     *p = szSting[0];
  57. return i;
  58. }
  59. int _Base_(char *In,char *_Out)
  60. {
  61. char Res[5]={0};
  62. int i = 0;
  63. int iz;
  64. char Out[5]={0};
  65. char out[250]={0};
  66.   int lenth = strlen(In);
  67. for (i = 0; i < lenth;)
  68. {
  69.   lstrcpynA(Res,In + i,4);
  70.   Res[4]=0;
  71.   Base64(Res,Out);
  72.   lstrcatA(out,Out);
  73.   i=i+3;
  74.     //还剩余1字节
  75.   if(lenth-i == 2)
  76.   {
  77.    iz = 1;
  78.    
  79.   }
  80.   if(lenth-i == 1)
  81.   {
  82.    iz = 2;
  83.   }
  84. }
  85.   //把A都替换为=
  86.     lenth = strlen(out) - 1;
  87. for (i=0; i < iz; i++)
  88. {
  89.    out[lenth-i] = '=';
  90.   
  91. }
  92.   lstrcpyA(_Out,out);
  93. return 0;
  94. }
  95. int main()
  96. {
  97. char sz_Out_String[200]={0};
  98. char out[280]={0};
  99. printf("请输入要转换的字符C:");
  100. scanf("%s",sz_Out_String);
  101. _Base_(sz_Out_String,out);
  102. printf("\n转换结果%s\n",out);
  103. return 0;
  104. }</FONT></P>
复制代码

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +2 收起 理由
freeparty + 3 + 5 + 2 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-27 08:44:22 | 显示全部楼层
2楼自坐
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:28:58 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:29:26 | 显示全部楼层
奇怪,这么好的算法怎么没人来看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-27 19:39:25 | 显示全部楼层
求顶求支持!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:42:34 | 显示全部楼层
支持支持一下,老迷不过对我没用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-27 19:43:47 | 显示全部楼层
流星编程 发表于 2015-2-27 19:42
支持支持一下,老迷不过对我没用

额....谢谢顶!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-1 16:53:43 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-3 19:52:35 | 显示全部楼层
楼主厉害啊,然而我只会xor
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-15 20:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表