我正在尝试使用 struct.pack 打包散列摘要,但没有得到预期的结果。
这就是我打包数据的方式:
hash = hashlib.sha256(input).digest()
print('hash = ', hash.hex())
packed = struct.pack('!32p', hash)
print('packed = ', packed.hex())
这是一个示例结果: hash = b5dbdb2b0a7d762fc7e429062d64b711d240e8f95f1c59fc28c28ac6677ffeaf
打包 = 1fb5dbdb2b0a7d762fc7e429062d64b711d240e8f95f1c59fc28c28ac6677ffe
字节似乎被移动了,并且添加了“1f”。这是格式说明符不正确的结果吗?
编辑:我相信这第一个字节是数据的长度,因为我使用的是“p”。有没有办法避免这种情况?我不想将其包含在我的打包数据中