python数据加密-base64编解码

一、原理

 base64的作用是以可见字符的形式对非纯文本文件进行编码转换, 简而言之就是用可见字符集中的字符替换原有的二进制文件。根据Base64的索引表,字符选用了"A-Z、a-z、0-9、+、/" 64个可打印字符。占位符是"="。数值代表字符的索引,这个是标准Base64协议规定的,不能更改。64个字符用6个bit位就可以全部表示,一个字节有8个bit位,剩下两个bit就浪费掉了,这样就不得不牺牲一部分空间了。这里需要弄明白的就是一个Base64字符是8个bit,但是有效部分只有右边的6个bit,左边两个永远是0。下面是所有字符集:

首先确定好要编码的字符串,并查找其对应的ASCII码将其转换为二进制表示,每三个8位的字节转换为四个6位的字节(3*8=4*6=24),把6位的最高位添两位数字0组成四个8位的字节,因此转换后的字符串将要比编码前的字符串长1/3。转换后,再将二进制转换为十进制表示。下面是字符ABC经base64编码后为QUJD。但在实际过程中,并不是所有的字符串转化后长度都是6的倍数,这时就需要用0来补充未满的位数,并使用=来当作占位符,使最终的长度为8的倍数。

在对base64进行解码时,会将需要解码的字符串每四个分为一组(在有占位符=的情况下,待解码的内容长度总是4的倍数)

当末尾是=时,则将等于号去掉,并将最后一个字符的后两位二进制数去掉,剩下的二进制数长度即为8的倍数,再进行解码
当末尾是==时,则将两个等于号去掉,并将最后一个字符的后四位二进制数去掉,剩下的二进制数长度即为8的倍数,再进行解码。

二、base64编码

 

 

三、base64解码

 

参考:

https://blog.csdn.net/weixin_51804748/article/details/121792094

 

posted @ 2021-11-16 12:06  冰雪2021  阅读(935)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css