我想写一个Python脚本到bruteforce hashes,允许用户将哈希算法作为字符串插入(结果:algorithm = "md5"
),但是当我在hashlib库中尝试这样使用它时,它显然给了我这个错误:AttributeError: module 'hashlib' has no attribute 'algorithm'
所以我做了一个快速的研究,我试着使用getattr如下:getattr(hashlib,guess(bytes(guess1))).hexdigest()
(可能真的错了),它给了我这个错误:TypeError: string argument without an encoding
。
我该怎么办?提前谢谢,抱歉没时间:)
这实际上是
bytes
在抱怨(在python3中是这样,但在python2中不是这样)。看起来您还交换了algorithm
和guess
在getattr
中的含义,您将要执行以下操作简单胜于复杂。你可以有一堆if语句,并在这些语句中进行正确的调用。如果有太多,可以使用hashmap,其中键是字符串,值是函数。你知道吗
但是,
getattr
是正确的调用,用于获取带有变量的属性,但是错误告诉您,如果不指定编码,就无法将字符串转换为bytestring。bytes
函数允许您这样指定编码:您没有将实际的算法名称传递给
getattr
调用。你知道吗试试这个:
相关问题 更多 >
编程相关推荐