当前位置:   article > 正文

Python 之 Base64 编码介绍及自定义函数进行编码_base64 is not defined

base64 is not defined

1、 Base64 介绍

  • 基于64个可打印字符来表示二进制数据
  • Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法
  • Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读
  • Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本

2、Base64 编码规则

  • Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3
  • 把3个字节变成4个字节 / 每76个字符加一个换行符 / 最后的结束符也要处理
  • 核心思想如下:
1、每3个字节断开,拿出一个3个字节,每6个bit断开成4段(24bit)
2、因为每个字节其实只占用了6位,因此有了Base64(2**6)的编码表
3、每一段当作一个8bit,看它的值,这个值就是Base64编码表的索引值,找到对应字符
4、再取三个字节,同样处理,直到最后
5、正好3个字节,处理方式如上
6、剩1个字节或者2个字节,用0补满3个字节,全部补0的字节用‘=’表示
7、字符串‘`’反引号也是一个字节,8位被断开,前6位和后2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、Base64 字符表

在这里插入图片描述

4、Base64 示例

#转换前 
101011 01,1011 1010,01 110110
# 转换后 
00101011, 00011011 ,00101001 ,00110110
# 十进制 
43 27 41 54
# 对应码表中的值 
r b p 2
# 所以上面的24位编码,编码后的Base64值为 rbp2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5、使用Python实现对一段字符串进行Base64编码 - 1

5.1 思路

import base64
base64.b64encode(b'abc')
# b'YWJj'
  • 1
  • 2
  • 3
   a b c
0x616263
# binary
01100001 01100010 01100011
# 每 6bit 进行分段
  011000    010110    001001    100011
# 补0,成四字节
00011000  00010110  00001001  00100011
# 十进制
      24        22         9        35  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/177240?site
推荐阅读
相关标签
  

闽ICP备14008679号