[英]node.js 6.0.0 buffer to string equivalent in python3
我正在将旧的 node.js 库转换为 python 并且无法重现 python 中 Buffer.toString() 的行为。
此库在节点 6.0.0环境中使用
我确实看过这个节点问题,但我不明白它是否与我的问题有关。
js function:
const KDF_PARTY_V = Buffer.from('E6F8C08930597B47472620568D207A23E4FCEF4B3F0AA3DC26FF369C622C6E1D', 'hex').toString('binary')
// The SHA-256 hash of your ID string literal; 32 bytes in size.
console.log(KDF_PARTY_V)
output:
æøÀ0Y{GG& V z#äüïK?
£Ü&ÿ6b,n
python 等效:
kdf_v = memoryview(bytes.fromhex('E6F8C08930597B47472620568D207A23E4FCEF4B3F0AA3DC26FF369C622C6E1D')).tobytes().decode('latin-1')
print(kdf_v)
output(堆栈显示不好)
æøÀ‰0Y{GG& V z#äüïK?
£Ü&ÿ6œb,n
只是不要尝试decode
。 解码将字节串变成文本串,而 hash 不是文本串。
kdf_v = bytes.fromhex('E6F8C08930597B47472620568D207A23E4FCEF4B3F0AA3DC26FF369C622C6E1D')
给你一个 32 字节的bytes
object,它在功能上等同于 Node.js Buffer
。
这只是一个控制台字符编码错误
在查看二进制数据本身时,python 版本与 js 版本相同,因此:
kdf_v = bytes.fromhex(merchant_id).decode('latin1')
完美工作
@AKX 我确实需要 str 格式的变量,因为我在串联中使用它,并在 sha256 摘要中使用它的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.