打印 上一主题 下一主题

[知识分享] Base64算法 编码过程和原理

[复制链接]

33

主题

55

帖子

335

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
335
跳转到指定楼层
楼主
4080 0 rodster 发表于 2017-1-10 22:10:23
  Base64作为一个历史悠久的算法,起初是为了电子邮件的传输而创立。因为它的算法和对应表公开,  所以Base64从严格意义上来说并不能算是现代加密算法。

    如今学习Base64的意义在于 ,以它为例,学习单表置换算法。而且Base64经过改造后,可以达到加密的效果。

    对于Base64算法来说,字符原本的编码格式很重要(这点可在后文算法的详细步骤中看出),不同的编码对结果影响差别很大。

  具体步骤:

1)字符串以字符为单位转换为对应编码
    这里以ASCII码来举例:取三个字符为一组,按照ASCII的表转化为24位二进制数字。
    注意:24位二进制很重要,这就是为什么要以三个字符为一组的原因。 所以在其他编码形式(如用到汉字时的GBK、UTF-18)从24位二进制倒推回编码前所要求的字符个数(如UTF-18里一个汉字是2-4个字节,当一个汉字为三字节时,就以这一个汉字为一组)
这里只列了两个字符,有助于理解算法中是如何补位的
2)编码转换为二进制
         十进制转二进制
  3)3个8位二进制,转为4个6位二进制
分组方式改变,例子如下
   分到第三个时,剩下的不够6位,在后面补零
  4)4个6位二进制分别在高位加2个0
至此变为4个8位二进制,也就解释了base64编码后字符创的长度会增加三分之一左右。
5)4个8位二进制转为十进制
二进制转十进制

  6)依据Base64的字符表转化
        64个字符对应0到63的数字。而Base64的名字正是由此而来。(还有Base32、Base16算法)   
最后还应加上=,等号是用来补位的。
综上所述,输入Me,经过编码后得出TWU=




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、本版所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有资源,可用于网站安全检测,不得使用非法,使用非法与本站无关
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和云夕阁论坛的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、如本版块文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、云夕阁论坛管理员和版主有权不事先通知发贴者而删除本文
  • 今日
    0
  • 主题
    12

推荐阅读

Archiver|手机版|小黑屋| 云夕阁 ( 湘ICP备16017785号-2 )     

返回顶部 返回列表