当我尝试在ripemd160和hashlib一起使用时,它说它找不到它。
我使用了easy_install hashlib,它安装了hashlib,但仍然找不到ripemd160。
我用的是Ubuntu和python2.7
def hexHash(str, withHash = None):
h = hashlib.new('ripemd160')
h.update(str)
if withHash != None:
return h.hexdigest()[0:6]
else:
return '#'+h.hexdigest()[0:6]ValueError:不支持的散列类型
发布于 2017-03-04 23:25:59
Hashlib是Python标准库的一部分,所以您不必安装它。
但是,唯一可以保证可用的哈希算法是md5、sha1、sha224、sha256、sha384和sha512。
根据您平台上使用的SSL库,还可以使用其他库。
您可以在终端中运行openssl list-message-digest-algorithms,以查看哪些算法可用。
(注意事项:从OpenSSL1.1.1开始,上面的命令无法工作。试试openssl dgst -list)
以上假设Python使用系统的SSL库,但情况可能并非如此。
或者(更好)来自Python:
import hashlib
print(hashlib.algorithms_available)如果ripemd160不可用,您可能应该考虑使用不同的选项重新安装SSL库。(假设Python使用系统的SSL)
如果要将SSL库更改为具有不同版本号的库,则还必须重新构建依赖于它的任何内容。
https://stackoverflow.com/questions/42601709
复制相似问题