fixeddigt base64在Python中的编码和解码

2024-04-29 18:36:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对base64字符串进行编码和解码。它正常工作,但如果我试图将哈希限制为6位数,解码时会出错:

from base64 import b64encode
from base64 import b64decode

s="something"

base 64编码/解码:

^{pr2}$

(工程)

6位base64编码/解码:

# Encode:
hash = b64encode(s)[:6]
# Decode:
dehash = b64decode(hash)
print dehash

类型错误:填充不正确

我做错什么了?在


更新:

根据Mark的回答,我在6位数哈希中添加了padding,使其可以被4整除:

hash = hash += "=="

但现在解码结果是“一些”

更新2

哇,太蠢了。。在


Tags: 字符串fromimport编码basehash解码something
1条回答
网友
1楼 · 发布于 2024-04-29 18:36:06

Base64根据定义,如果输入未解码为输出字节的整数,则需要填充输入。每4个base64字符就变成3个字节。您的输入长度没有被4整除,因此有一个错误。在

Wikipedia对Base64的细节有很好的描述。在

相关问题 更多 >