【发布时间】:2012-01-13 20:32:37
【问题描述】:
我正在尝试对 base64 字符串进行编码和解码。它正常工作,但如果我尝试将哈希限制为 6 位,我会在解码时收到错误:
from base64 import b64encode
from base64 import b64decode
s="something"
base 64 编码/解码:
# Encode:
hash = b64encode(s)
# Decode:
dehash = b64decode(hash)
print dehash
(作品)
6 位 base 64 编码/解码:
# Encode:
hash = b64encode(s)[:6]
# Decode:
dehash = b64decode(hash)
print dehash
TypeError: 不正确的填充
我做错了什么?
更新:
根据 Mark 的回答,我在 6 位哈希中添加了填充,使其可被 4 整除:
hash = hash += "=="
但现在解码结果 = "some"
更新 2
哇,这太愚蠢了..
【问题讨论】:
-
为什么更新后的结果让你大吃一惊?您是否希望以某种神奇/分形的方式将整个原始字符串编码为 6 个字节?
-
哦,我是个白痴 - 试图将较长的字符串编码为较短的散列......抱歉浪费了你们的时间