我正在尝试对base64字符串进行编码和解码。它正常工作,但如果我试图将哈希限制为6位数,解码时会出错:
from base64 import b64encode
from base64 import b64decode
s="something"
(工程)
# Encode:
hash = b64encode(s)[:6]
# Decode:
dehash = b64decode(hash)
print dehash
类型错误:填充不正确
我做错什么了?在
更新:
根据Mark的回答,我在6位数哈希中添加了padding,使其可以被4整除:
hash = hash += "=="
但现在解码结果是“一些”
更新2
哇,太蠢了。。在
Base64根据定义,如果输入未解码为输出字节的整数,则需要填充输入。每4个base64字符就变成3个字节。您的输入长度没有被4整除,因此有一个错误。在
Wikipedia对Base64的细节有很好的描述。在
相关问题 更多 >
编程相关推荐