使用sha512方法的digest()散列与hash_hmac中的sha512不相等。
Python:
print base64.b64encode(hmac.new("key".encode("ascii"),"hello".encode("ascii"), hashlib.sha512).digest())PHP:
<?php
echo base64_encode(hash_hmac('sha512', "hello", "key"));
?>如果在python中使用hexdigest()方法代替digest()方法,则哈希结果是相同的。我需要使用digest()方法,那么在php中是否有任何等效的方法,使我能够得到相同的散列结果?
发布于 2018-06-25 10:03:16
我猜digest()中的hash_hmac以二进制字符串的形式返回哈希,而hash_hmac则返回十六进制编码的字符串。因此,在PHP中,您可以执行如下操作:
echo base64_encode(hex2bin(hash_hmac('sha512', "hello", "key")));
https://stackoverflow.com/questions/51020480
复制相似问题