base64 加密错误
错误信息:
TypeError: a bytes-like object is required, not 'str'
base64.b64encode()
方法的参数必须是一个 bytes-like object
类型
str <–> bytes
- str --> bytes
s = 'abcd'
s = bytes(s, encoding='utf-8')
# 或者是
s = str.encode(s, 'utf-8')
# 或者是
s = s.encode('utf-8')
# 输出的结果都是一样的
print(s) # b'abcd'
- bytes --> str
b = b'abcd'
b = str(b, encoding='utf-8')
# 或者是
b = bytes.decode(b) # encoding 默认是 'utf-8
# 或者是
b = b.decode() # encoding 默认是 'utf-8
base64 加密解密
s = 'abcd'
# str 类型编码成 bytes 类型
b_s = s.encode('utf-8')
print(b_s) # b'abcd'
# base64 加密
m_s = base64.b64encode(b_s)
print(m_s) # b'YWJjZA=='
# bytes 类型解码成 str 类型
s_s = str(m_s, 'utf-8')
print(s_s) # YWJjZA==
小结
-
str``````bytes
是不同的数据类型, 可以使用编码解码进行类型转换 -
base64_encode($pass) 是一种加密算法, 只是对某一类型的数据进行加密