鱼C论坛

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

[原创] 自己写的Base64编码算法(纯C语言)

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

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

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

x
不简单!!
上图
6.png
代码不是很多!!看了Base64加密规则后自己打的!!求支持
代码在下面
<P><FONT color=green>[hide] </P>
<BLOCKQUOTE>
<P><FONT color=green>#include "stdio.h"
#include "windows.h"
/*
  By:迷 雾 少 年
  QQ:1462063314
*/
int  Base_(char *szSting);
int  AsciiToB(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格式的字符
int  Base64(char *_Char,char *Resu)
{
 int _Data = 0;
 int _Int_[4]={0};
 //_Data = 5533549;
 _Data = Base_(_Char);
 //_Data =7929856;
 Resu[3] = _Data & 0x3F;
 // 0xFC0
 Resu[2] = (_Data & 0XFC0) >> 6;
 // 0x3F000
 Resu[1] = (_Data & 0x3F000) >> 12;
 // FC0000
 Resu[0] = (_Data & 0xFC0000) >> 18;
 //Resu[0] = (_Data & 0x3F000000) >> 24;
 /*查表咯*/
   Resu[0] = AsciiToB(Resu[0]);
   Resu[1] = AsciiToB(Resu[1]);
   Resu[2] = AsciiToB(Resu[2]);
   Resu[3] = AsciiToB(Resu[3]);
 return 0;
}
int  Base_(char *szSting,int _twp)
{
    int  i = 0;
 char *p = (char*)&i;
 *p = szSting[2];
 p++;
 *p = szSting[1];
 p++;
 *p = szSting[0];
 p++;
    *p = szSting[0];
 return i;
}
int _Base_(char *In,char *_Out)
{
 char Res[5]={0};
 int i = 0;
 int iz;
 char Out[5]={0};
 char out[250]={0};
  int lenth = strlen(In);
 for (i = 0; i < lenth;)
 {
  lstrcpynA(Res,In + i,4);
  Res[4]=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[lenth-i] = '=';
  
 }
  lstrcpyA(_Out,out);
 return 0;
}
int main()
{
 char sz_Out_String[200]={0};
 char out[280]={0};
 printf("请输入要转换的字符C:");
 scanf("%s",sz_Out_String);
 _Base_(sz_Out_String,out);
 printf("\n转换结果%s\n",out);
 return 0;
}</FONT></P>

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-27 08:44:22 | 显示全部楼层
2楼自坐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:28:58 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:29:26 | 显示全部楼层
奇怪,这么好的算法怎么没人来看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-27 19:39:25 | 显示全部楼层
求顶求支持!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-27 19:42:34 | 显示全部楼层
支持支持一下,老迷不过对我没用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

额....谢谢顶!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-1 16:53:43 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-3 19:52:35 | 显示全部楼层
楼主厉害啊,然而我只会xor
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 18:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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