我有一个字符串,我将其编码为 Base64 以节省空间。如果我去掉最后的等号有什么大不了的吗?这会显着降低熵吗?我该如何确保结果字符串的长度是固定的?
>>> base64.b64encode(combined.digest(), altchars="AB")
'PeFC3irNFx8fuzwjAzAfEAup9cz6xujsf2gAIH2GdUM='
Thanks.
需要编码为 Base64 的每 3 个字节将转换为 4 个 ASCII 字符,并使用“=”字符填充结果,以便始终存在 4 个编码字符的倍数。如果你有 3 字节的精确倍数,那么你将得不到等号。
一个备用字节意味着最后会得到两个“=”字符。
两个备用字节意味着最后会得到一个“=”字符。
根据您解码字符串的方式,它可能会或可能不会将此视为有效字符串。对于您拥有的示例字符串,它不会解码,但我尝试过的一些简单字符串可以解码。
您可以阅读此页面以更好地了解 Base64 字符串和编码/解码。
http://www.nczonline.net/blog/2009/12/08/computer-science-in-javascript-base64-encoding/ http://www.nczonline.net/blog/2009/12/08/computer-science-in-javascript-base64-encoding/
您可以使用免费的在线编码器/解码器来检查输出字符串
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)