美文网首页
base64 学习

base64 学习

作者: 竹屋听雨 | 来源:发表于2019-08-22 17:15 被阅读0次

    base64

    编码是基于64个字符A-Z,a-z,0-9,+,/的编码方式,因为2的6次方正好为64,所以就用6bit就可以表示出64个字符

    base64编码原理

    都是按字符串长度,以每 3 个 字符(1Byte=8bit)为一组,然后针对每组,首先获取每个字符的 ASCII 编码(字符’a’=97=01100001),然后将 ASCII 编码转换成 8 bit 的二进制,得到一组 3 * 8=24 bit 的字节。然后再将这 24 bit 划分为 4 个 6 bit 的字节,并在每个 6 bit 的字节前面都填两个高位 0,得到 4 个 8 bit 的字节,然后将这 4 个 8 bit 的字节转换成十进制,对照ASCII编码表,得到编码值

    base64编码本质

    是一种将二进制数据转成文本数据的方案。对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)计算其十进制值,根据该值在A–Z,a–z,0–9,+,/ 这64个字符中找到对应的字符,最终得到一个文本字符串。
    1.标准Base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号
    2.Base64是把3个字节变成4个可打印字符,所以Base64编码后的字符串一定能被4整除(不算用作后缀的等号)
    3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,Base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
    4.严格来说Base64不能算是一种加密,只能说是编码转换

    base64 解码

    解码原理是将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位,这样就还原了

    egg 1.字符长度为能被3整除时:比如“Tom” :

    编码后的就是VG9t

    20150226095939361.jpeg

    2、字符串长度不能被3整除时,比如“Lucy”:因为4个Base编码为一组,最后再补上’=’补齐,即:THVjeQ==

    20150226100003900.jpeg

    通常会结合加密解密组合使用

    相关文章

      网友评论

          本文标题:base64 学习

          本文链接:https://www.haomeiwen.com/subject/tbngsctx.html