Base64编码和解码

Base64 不是加密算法,只是一种编码方式,数据从一种形式转换为另一种形式进行传输/存储。Base64 就是一种基于64个可打印字符来表示二进制数据的方法。
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。最后,用一个码表来得到我们想要的字符串,这就是 Base64编码。
码表:

索引
对应字符
索引
对应字符
索引
对应字符
索引
对应字符
0
A
17
R
34
i
51
z
1
B
18
S
35
j
52
0
2
C
19
T
36
k
53
1
3
D
20
U
37
l
54
2
4
E
21
V
38
m
55
3
5
F
22
W
39
n
56
4
6
G
23
X
40
o
57
5
7
H
24
Y
41
p
58
6
8
I
25
Z
42
q
59
7
9
J
26
a
43
r
60
8
10
K
27
b
44
s
61
9
11
L
28
c
45
t
62
+
12
M
29
d
46
u
63
/
13
N
30
e
47
v
14
O
31
f
48
w
15
P
32
g
49
x
16
Q
33
h
50
y

Python 中集成了base64 模块,可用于对二进制数据进行编码解码操作:

>>> a = "Hello world"
>>> b = base64.encode(a)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: encode() missing 1 required positional argument: 'output'
>>>
>>>
>>> b = base64.b64encode(a)
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/lib/python3.8/base64.py", line 58, in b64encodeencoded = binascii.b2a_base64(s, newline=False)
TypeError: a bytes-like object is required, not 'str'
>>>
>>>
>>>
>>> a = b"Hello world"
>>> b = base64.b64encode(a)
>>> b
b'SGVsbG8gd29ybGQ='
>>> c = base64.b64decode(b)
>>> c
b'Hello world'
>>> d = b.decode('ascii')
>>> d
'SGVsbG8gd29ybGQ='
>>> e = base64.b64decode(d)
>>> e
b'Hello world'
>>>

可以看到使用 base64.b64encode 进行编码时,只能时二进制数据,如果输入时 str 文本,将报错 TypeError。
而使用 base64.b64decode 解码时,字符串和字节床都可以作为输入。

【Python】Base64编码和解码相关推荐

  1. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  2. [转载] python将图片进行base64编码, 解码

    参考链接: 在Python中编码和解码Base64字符串 一.将图片进行base64编码 import base64 img_path = 'D:xxx/file/img/juwan.jpg' wit ...

  3. 【Python】base64模块对图片进行base64编码和解码

    图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的. 没 ...

  4. Python base64编码

    Python base64编码 1.bytes.decode() decode()方法语法: bytes.decode(encoding="utf-8", errors=" ...

  5. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  6. Base64编码和解码

    Base64编码和解码 DES加密后密文长度是8个整数倍 加密后比明文长度变长,所以编码表找不到对应字符,乱码 使用Base64编码和解密:从Apache现在 1.加密后密文使用Base64编码 2. ...

  7. java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...

    为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...

  8. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

  9. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  10. Linux上的js解码,使用JavaScript实现Base64编码与解码

    我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...

最新文章

  1. XR应用场景骤变,一场波及5亿人的新探索开始了
  2. 阅读好书依然是提升自己的高效方法:兼以作者的身份告诉大家如何选择书,以及高效学习的方法...
  3. 常用机器学习算法原理及推导
  4. VC程序员常用工具篇
  5. thinkphp5运行原理_ThinkPHP5.1~5.2全版本远程代码执行高危漏洞预警
  6. zabbix计算型监控项函数last_zabbix 自定义key类型之计算(Calculated items)-阿里云开发者社区...
  7. python标准库os的方法listdir_使用python标准库快速修改文件名字
  8. 一个可以下载Github指定子文件夹的Chrome插件
  9. 计算机组装与维护推荐教材,计算机组装与维护(全国高等专科教育计算机类规划教材)...
  10. php中如何滚动文字,HTML_网页HTML代码:滚动文字的制作,制作滚动文字 通过本章前面 - phpStudy...
  11. HDU2080 夹角有多大II【数学】
  12. python怎么读数据库_Python如何读写SQLite数据库
  13. java 断点跳到注释,给注解打断点的一种方法
  14. rabbitmq接收不到消息_springboot集成RabbitMQ接收消息及其高级特性
  15. Servlet-请求匹配,创建Servlet的三种方式,API 1
  16. JAVA:文本文件读写使用Reader/Writer,二进制文件使用InputStream/OutputStream
  17. sufficient statistic
  18. 网络配置_Linux CentOS怎么配置网络
  19. VASP学习记录与总结
  20. 计算机技术在生物学中的应用鲁东大学,生物科学与技术学院

热门文章

  1. Unity Shader零基础入门4:纹理贴图与法线贴图
  2. 京津冀地区地貌类型空间分布数据
  3. grunt,gulp
  4. 代码评审这点事,元芳你怎么看
  5. Android Studio 消除Manifest文件中的黄色背景警告
  6. python三维图像切片成二维_python之画三维图像
  7. web 前端入坑第一篇:web前端到底是什么?有前途吗
  8. 百度导航hd android,百度导航hd版-百度导航hd版下载-安卓手机4.5.1APP免费软件-最笨下载...
  9. 台式计算机进入安全模式蓝屏,电脑进入安全模式蓝屏怎么办?
  10. Android使用FFmpeg 解码H264并播放(一)