使用自定义密钥和算法ripemd160创建哈希值

时间:2016-06-04 07:59:41

标签: python ripemd

这是我在Python中尝试的代码,但我得到了AttributeError

>>> import hmac
>>> import hashlib
>>> h=hashlib.new('ripemd160')
>>> hmac.new("bedford","Hello",hashlib.ripemd160)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AttributeError: module 'hashlib' has no attribute 'ripemd160'

我搜索过Python文档和很多论坛,但在Maturemd160和Python上找不到太多。

3 个答案:

答案 0 :(得分:1)

while ( sentence[number] != '\0' ) 模块不直接支持

ripemd160

hashlib
     

提供哈希算法名称的元组   保证得到这个模块的支持。

模块支持以下内容:>>> hashlib.algorithms

因此,您需要再次使用md5, sha1, sha224, sha256, sha384, sha512构造函数或将引用传递给您已创建的构造函数。

答案 1 :(得分:1)

这样可行:

hmac.new("bedford", "Hello", lambda: hashlib.new('ripemd160'))

h=hashlib.new('ripemd160')
hmac.new("bedford", "Hello", lambda: h)

答案 2 :(得分:1)

首先,密钥需要是二进制(Python3) - &gt; b"bedford"

然后,如果消息是unicode等,则需要对消息进行编码(Python3) - &gt; codecs.encode("Hello")

最后,使用lambda functions

import codecs
import hmac
import hashlib
h=hashlib.new('ripemd160')
hmac.new(b"bedford", codecs.encode("Hello"), lambda: h)