鱼C论坛

 找回密码
 立即注册
查看: 2788|回复: 3

[技术交流] Base64编码算法(纯C)

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

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

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

x
6.png
Base64编码不难,就是有点麻烦.~~~
自己写的~~大神勿喷1!!!!!
<P> [hide] </P>
<P>#include "stdio.h"
#include "windows.h"
/*
  By:迷 雾 少 年
  QQ:1462063314
*/
int  Base_(char *szSting);
int  AsciiToB(char p )
{
 int i = 0;</P>
<P> if(p>=0 && p<=25)
  i = 65 + p;
 if(p>=26 && p<=51)
  i = 71 + p;
 if(p>=52 && p<=61)
  i =  p - 4;</P>
<P> if(p==62) i = '+';
 if(p==63) i = '/';
 return i;
}</P>
<P>//把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;
}</P>
<P>[/hide]</P>

本帖被以下淘专辑推荐:

  • · 迷雾|主题: 5, 订阅: 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2015-2-27 10:05:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 14:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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