找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 10479|回复: 2

[算法] BASE64算法变异与提速

[复制链接]

7

主题

36

回帖

2

精华

初来乍到

积分
3171
发表于 2011-2-5 22:58:21 | 显示全部楼层 |阅读模式
本帖最后由 lxl1638 于 2011-5-8 16:19 编辑

学编程语言少不了研究算法,各人都会有自己的体会,
BASE64编码/解码算法简单是初学者很好的示例。

BASE64编码的原理是将3个8位二进制数值(共24位)拆分成4个6位二进制数值,可用下面过程表示(A、B、C表示二进制的1或0):
AAAAAAAA BBBBBBBB CCCCCCCC 三个数拆分成
AAAAAA  AABBBB  BBBBCC CCCCCC

解码过程正好相反,即将4个8位二进制(均小于0x3F,高二位均为0,只有低6位有效)的数据合成3个8位二进制数值。

很多传统的算法都是一个字节一个字节地操作,而Win32系统默认的数据类型是32位,刚好是4个8位二进制(32位),如果是4个8位二进制(即Win32系统的DWORD或UINT32数据)一次性读取,整体通过移位的方法可提高编码和解码的速度,本源码就是利用该方法实现BASE64编码的变异与提速,提速不是关键,变异才是关键,本人在另一工具中要用到BASE64编码,为了防止简单的破解,使用了BASE64变异算法。

源码中有变异算法的简单注释。
未命名.PNG

Base64_Test源码.rar

68.83 KB, 下载次数: 8276

评分

参与人数 1水晶币 +40 收起 理由
Tesla.Angela + 40 精品文章

查看全部评分

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-2-5 23:45:15 | 显示全部楼层
这个很好
不错

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-7-1 08:38:26 | 显示全部楼层
好帖子 需要支持
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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