【发布时间】:2020-04-18 08:03:43
【问题描述】:
我有使用 Perl 创建的 base64 编码数据,使用 MIME::Base64 和 encode_base64($data)。
结果是:ahX/OxLY/BBR4Wy+n+a3Mg==
当我在 Perl 中解码时,我得到j?;??Q?l???2。如果我把它写到一个文件中,它看起来像这样:jˇ;ÿ¸Q·læüÊ∑2
但是,当我尝试使用相同的 base64 编码数据并使用 python 解码时base64.b64decode(data), I get:
b'j\x15\xff;\x12\xd8\xfc\x10Q\xe1l\xbe\x9f\xe6\xb72'`
如果我将其解码为latin1,则结果更接近:'j\x15ÿ;\x12Øü\x10Qál¾\x9fæ·2',但我需要完全相同的数据。
如何从 python 获得完全相同的输出?我错过了什么?
(Perl $data 本身应该是用 urandom read(DEV,$data,16); 生成的。
【问题讨论】:
-
这可能是相同的数据(以不同的表示形式)。将字节写入文件(以二进制模式,而不是文本)并比较文件。
标签: python perl encoding base64