2024-09-26 17:43:59 发布
网友
我用Django做一个电子商店。我正在尝试使用http://liqpay.com/添加在线支付。它们在PHP中有示例:https://liqpay.com/?do=pages&p=cnb12。在
在这个例子中,他们使用PHP的shal($data, 1)标志1(然后sha1摘要以原始二进制格式返回,长度为20)。在
shal($data, 1)
但是Python函数hashlib.sha1()没有这个标志。在
hashlib.sha1()
Python中有类似的东西吗?在
在php中
$hash = hash("sha1", "something", true)echo base64_encode($hash) 'GvF+c3IdvgxAARuC7Uuxp9vjzik='
$hash = hash("sha1", "something", true)
echo base64_encode($hash)
在python中
from hashlib import sha1sha1("something").digest().encode("base64") 'GvF+c3IdvgxAARuC7Uuxp9vjzik=\n'
from hashlib import sha1
sha1("something").digest().encode("base64")
说明 在php中,散列函数third param意味着输出将以二进制模式在python中生成相同的结果,您必须使用digest方法来获得相同的结果。在
Python hashlib对象可以提供原始字节或十六进制摘要,具体取决于使用的方法。调用^{}将得到原始字节:
>>> 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
如果要获取十六进制摘要,请改用^{} method:
在php中
在python中
说明
在php中,散列函数third param意味着输出将以二进制模式在python中生成相同的结果,您必须使用digest方法来获得相同的结果。在
Python hashlib对象可以提供原始字节或十六进制摘要,具体取决于使用的方法。调用^{} 将得到原始字节:
如果要获取十六进制摘要,请改用^{} method :
^{pr2}$相关问题 更多 >
编程相关推荐