BASE64编码
概要
平时比较熟悉的是ASCII编码,最近经常看到有些BASE64编码格式展现的字符串,有些能直接用解码工具解码,有些解码后是乱码。所以就比较疑问,到底解不出来的BASE64编码格式的字符串算不算是BASE64编码?
问题
PMNIPcFT7uyjNjQGBeJIHkAPvyqkGkjJr++tKe9LCOs=
这段字符串是符合BASE64编码规则的。但是是无法用BASE64解码解出有效信息的。简单来说它就是用BASE64规则展现的一个字符串。那么它隐藏了什么信息呢?
技术名词解释
- Base64并不加密信息,因为它属于编码方式,不属于加密系统;可以随时对其信息进行解码。Base64编码是一种从二进制到字符的过程,解码则相反。
技术细节
import base64
# Base64 编码字符串
base64_str = "PMNIPcFT7uyjNjQGBeJIHkAPvyqkGkjJr++tKe9LCOs="
# 解码 Base64 字符串为字节
decoded_bytes = base64.b64decode(base64_str)
# 将字节转换为 16 进制字符串
hex_str = decoded_bytes.hex()
print(hex_str)
# 当作普通的字符串处理,进行字符串转16进制表示
hex_str = base64_str.encode('utf-8').hex()
print(hex_str)
运行结果:
3cc3483dc153eeeca336340605e2481e400fbf2aa41a48c9afefad29ef4b08eb 504d4e49506346543775796a4e6a514742654a49486b41507679716b476b6a4a722b2b744b65394c434f733d
两种处理方式运行结果是不同的,那么哪种才是正确的呢?我们下次根据BASE64编码规则来解开这个谜题。
小结
我们下一篇文章介绍一下BASE64编码的规则,然后根据原理规则判断哪个结果是正确的。