Python - 哈希二进制值

2 投票
1 回答
12183 浏览
提问于 2025-04-17 18:35

我想用sha1算法来计算一些数据的校验和,但在Python中,hashlib的输入是字符串。

那么,在Python中有没有办法用原始字节作为输入来计算sha1呢?

我之所以问这个,是因为如果我想计算一个文件的哈希值,在C语言中我会使用openssl库,直接传递普通字节,但在Python中我需要传递字符串。所以如果我在这两种语言中计算某个特定文件的哈希值,结果可能会不一样。

1 个回答

5

在Python 2.x中,str对象可以是任意的字节流。所以你可以直接把数据作为str类型传递给hashlib函数。

>>> import hashlib
>>> "this is binary \0\1\2"
'this is binary \x00\x01\x02'
>>> hashlib.sha1("this is binary \0\1\2").hexdigest()
'17c27af39d476f662be60be7f25c8d3873041bb3'

撰写回答