我试图从旧版本的pycrypto
和{
目前我的代码:
from hashlib import sha512 # my pycrypto doesn't have SHA
from Crypto.Hash import HMAC
from binascii import a2b_hex
# helper to match HMAC signature
class Sha512:
@staticmethod
def new():
return sha512()
def hmac(hexkey, hexdata):
return HMAC.new(a2b_hex(hexkey), a2b_hex(hexdata), digestmod=Sha512).hexdigest()
hmac("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b", "4869205468657265")
'9656975ee5de55e75f2976ecce9a04501060b9dc22a6eda2eaef638966280182477fe09f080b2bf564649cad42af8607a2bd8d02979df3a980f15e2326a0a22a'
# should be
'87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854'
我是不是出了问题?
在pycrypto
中,key
会有不同的语义吗?在
编辑:我在Python3和最新的pycrypto中也看到了同样的差异。在
结果是,
pycrypto
希望在实例化算法之前查看算法的块和摘要大小。在以下是一个有效的方法:
此外,旧版本的pycrypto不支持更大的块大小: https://bugs.launchpad.net/pycrypto/+bug/754806
而且,
pycrypto
对于这个特定的任务来说并不是真正必要的。Python提供了一个hmac
模块,它可以接受hashlib
哈希。在相关问题 更多 >
编程相关推荐