这两天突然想看看编码的问题了,于是想到了BASE64,这个是为了解决网关问题传输MIME类型时对附件等进行加密的算法,具体的信息可以找一下hi.baidu的资料。
这里介绍一下算法:
当文件以字节进行编码时,使用了一个byte的8位,而base64使用了一个字节的后六位,前两位用0填充。这样三个8位的byte就可以转换为四个使用了6字节的byte。
01001101 10011101 11100001
就转换成 00010011 00011001 00110111 00100001
第一个字节右移两位,同时高位补两个0得到第一个6位字节( 01001101 --> xx010011 &0011 1111(63)-->00010011)
第一个原8位字节左移四位 或运算 第二个原8位字节右移四位(00010000 | 00001001-->00011001)
第二个原8位字节左移两位 ( 011101xx&00111100-->00110100) 或运算 原第三个字节右移六位(xxxxxx11&00000011--->)00000011 得到 00110111
第四个六位字节既是原第三个八位字节的后六位 (11100001 &00111111)-->00100001
就转换成 00010011 00011001 00110111 00100001 变成int既是 19,25,55,33对应的加密字符为 T ,Z,3,j
返回base64加密结果TZ3j
如果
01001101 10011101
则 00010011 00011001 00110100 这个地方缺少一组,对应加密字符为=
19,25,52,空白 --》T ,Z,0,=
返回base64加密结果TZ0=
解密相反的方法即可:TZ0=--》19,25,52,空白-》00010011 00011001 00110100 --》
010011,01。1001,1101。00--》01001101 10011101
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15116811/viewspace-434673/ ,如需转载,请注明出处,否则将追究法律责任。