在Python中模拟PHP的sha1原始输出

use*_*029 2 php python django

我正在使用Django制作电子商店.我正在尝试使用http://liqpay.com/添加在线支付.他们在PHP中有例子:https://liqpay.com/?do = pages&p = cnb12.

在示例中,他们使用PHP的shal($data, 1)标志1(然后sha1摘要以原始二进制格式返回,长度为20).

但是Python函数hashlib.sha1()没有这个标志.

Python中是否有一些模拟?

Mar*_*ers 6

Python hashlib对象可以为您提供原始字节或十六进制摘要,具体取决于使用的方法.调用.digest()为您提供原始字节:

>>> import hashlib
>>> data = 'foobar'
>>> hashlib.sha1(data).digest()
'\x88C\xd7\xf9$\x16!\x1d\xe9\xeb\xb9c\xffL\xe2\x81%\x93(x'
>>> len(hashlib.sha1(data).digest())
20
Run Code Online (Sandbox Code Playgroud)

如果要获取十六进制摘要,请改用该.hexdigest()方法:

>>> hashlib.sha1(data).hexdigest()
'8843d7f92416211de9ebb963ff4ce28125932878'
Run Code Online (Sandbox Code Playgroud)