我有一个字符串,我将其编码为 base64 以节省空间。如果我删除最后的等号,这有什么大不了的吗?这会显着降低熵吗?如何确保生成的字符串的长度是固定的?
>>> base64.b64encode(combined.digest(), altchars="AB")
'PeFC3irNFx8fuzwjAzAfEAup9cz6xujsf2gAIH2GdUM='
谢谢。
最佳答案
您需要编码为 Base64 的每 3 个字节转换为 4 个 ASCII 字符,并使用“=”字符填充结果,以便始终有 4 个编码字符的倍数。如果您有 3 个字节的精确倍数,那么您将不会得到等号。 一个备用字节意味着您在最后得到两个“=”字符。 两个备用字节意味着你在最后得到一个“=”字符。 根据您对字符串的解码方式,它可能会将其视为有效字符串,也可能不会。使用您拥有的示例字符串,它不会解码,但我尝试过的一些简单字符串可以解码。
您可以阅读此页面以更好地了解 base64 字符串和编码/解码。
http://www.nczonline.net/blog/2009/12/08/computer-science-in-javascript-base64-encoding/
有免费的在线编码器/解码器可用于检查输出字符串
关于python - 可以从base64字符串中删除等号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020409/