Base64编码的C++实现

base64编码方式是一种非常普遍的对字符串进行编码的方法,通常,会有不少加解密算法会使用到base64,比如常用的sha1+base64以及md5+base64。

其实base64的64指的就是它的编码方法:把输入数据的二进制转换为a-z,A-Z,0-9,+,/再加上一个用来填充的=的字符串。这里刚好有64种不同的字符。所以就这样了。

它的具体方法是把每6bits的二进制数据按照base64的码表转换成上述字符。因此,刚好每3个字符就会被编码成4个字符,这4个字符就是一个小组,所以自然base64的字符串长度应该是4的倍数。但是实际上当最后一组不够的时候,就会用=来填充满。所以你看到的base64编码后的字符串很可能就会尾随一个==

我们先看看base64的码表:

ValueEncodingValueEncodingValueEncodingValueEncoding
0A17R34i51z
1B18S35j520
2C19T36k531
3D20U37l542
4E21V38m553
5F22W39n564
6G23X40o575
7H24Y41p586
8I25Z42q597
9J26a43r608
10K27b44s619
11L28c45t62+
12M29d46u63/
13N30e47v  
14O31f48w(pad)=
15P32g49x  
16Q33h50y  

 

 

下面是我根据René Nyffenegger这个人写的算法修改之后直接从传入的MD5 32位的16进制字符串生成Base64编码的算法。

 

下面这个是网上流传的一个SHA1 和MD5 加密以及再进行base64编码的JavaScript脚本:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值