Python - 哈希二进制值
我想用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'