base64原理(字符加密场景)

base64算法是将加密字符串中的每个字符转换为二进制后拼接在一起后,将二进制以6位为一组做为base64表的下标进行取值对应,所以一般base64中的4个字符对应明文的3字符的内容。

base64的加密流程一般如下:

建立base64编码映射表,标准的base64编码表

const char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

base64编码表也可以自行定义。

以三个字符一组,遍历字符串,对第一个字符进行左移16位,对第二个字符左移8位,第三个字符不做任何操作,左移完成后结果相加得到24位二进制,按照6位一组进行base64取值,分别取4组。取值过程如下:

第一组将以上步骤得到的24位二进制内容,右移18位与0x3f进行&操作,保留低6位,得到第一组的base64表的下标进取值;

第二组将24位二进制内容右移12位后0x3f进行&操作,得到第二组的base64表的下标进行取值

第三组右移6位后0x3f进行&操作,得到第三组的base64表的下标进行取值

第4组只与0x3f进行&操作,得到第四组的base64表的下标进行取值

循环取值将得到的结果拼接存储后得到最终的base64的编码结果,至此base64编码过程结束,需要注意的是有些,base64会在最后拼接上两个==号做为结束符号。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值