该算法是使用查表方法来实现的。优点:性能好。缺点:码表占用几KB内存。
简单测试了一下,和精仪模块的BASE64对比一下,没有什么问题。目前尚未投入实际应用。可能存在错误。它是开源的,供大家测试。
1.1版本更新
1)将AVX2指令集版本集成到其中,内部判断CPU是否支持。如果CPU支持的话,在需要编码的数据足够长的情况下,性能会比80386版本提升90%左右。
1.2版本更新
1) 修复BASE64encoding_ASM()的mulx指令计算应用长度,在老CPU上会导致异常问题(感谢有时的反馈)。
1.3 更新
1)添加BASE16编码和解码(字节集转十六进制,十六进制转字节集),自动选择版本:AVX2、80386
2)修复BASE64编解码问题。有些情况下不会选择AVX2模式(C/C++的bool类型是单字节,easy的逻辑类型是4字节,easy的逻辑类型为true时转为字节集)可能是{0,0,1,0},导致单字节判断有时有效或无效)。
1.4更新(2019.6.5)
1)新增BASE64解码2_ASM,支持未补全的BASE64编码(去掉了标准BASE64编码长度的检测,可能存在BUG)
15020850425[下载].rar
|