免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1098 | 回复: 3
打印 上一主题 下一主题

平台移植的问题,看了很多资料,还是迷惑啊!----MIME之Base64编解码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-18 10:24 |只看该作者 |倒序浏览
有做过加密算法在不同平台间移植的么?能举些例子么?现在没法入手呢!

[ 本帖最后由 zw2002 于 2006-8-18 10:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-18 10:34 |只看该作者

回复 1楼 zw2002 的帖子

int value= const char decode;这种需要转么?
还有移位运算
char pdst=(value & 0x00ff0000) >> 16;

论坛徽章:
0
3 [报告]
发表于 2006-08-18 10:45 |只看该作者
test, test, test.
1,2的答案都是不确定。步入在pdp11, 或者xerox的环境下(6bits字节)都需要移植,其他的不需要。

论坛徽章:
0
4 [报告]
发表于 2006-08-18 10:48 |只看该作者

回复 3楼 柳五随风 的帖子

又查到些资料是有关
MIME之Base64编解码


  1. int DecodeBase64(const char* pSrc, unsigned char* pDst, int nSrcLen)
  2. {
  3.     int nDstLen;            // 输出的字符计数
  4.     int nValue;             // 解码用到的长整数
  5.     int i;

  6.     i = 0;
  7.     nDstLen = 0;

  8.     // 取4个字符,解码到一个长整数,再经过移位得到3个字节
  9.     while (i < nSrcLen)
  10.     {
  11.         if (*pSrc != '\r' && *pSrc!='\n')
  12.         {
  13.             nValue = DeBase64Tab[*pSrc++] << 18;
  14.             nValue += DeBase64Tab[*pSrc++] << 12;
  15.             *pDst++ = (nValue & 0x00ff0000) >> 16;
  16.             nDstLen++;

  17.             if (*pSrc != '=')
  18.             {
  19.                 nValue += DeBase64Tab[*pSrc++] << 6;
  20.                 *pDst++ = (nValue & 0x0000ff00) >> 8;
  21.                 nDstLen++;

  22.                 if (*pSrc != '=')
  23.                 {
  24.                     nValue += DeBase64Tab[*pSrc++];
  25.                     *pDst++ =nValue & 0x000000ff;
  26.                     nDstLen++;
  27.                 }
  28.             }

  29.             i += 4;
  30.         }
  31.         else        // 回车换行,跳过
  32.         {
  33.             pSrc++;
  34.             i++;
  35.         }
  36.      }

  37.     // 输出加个结束符
  38.     *pDst = '\0';

  39.     return nDstLen;
  40. }

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP