简单 Python 查询 - MD5 散列
Simple Python inquiry - MD5 hashing
我正在尝试编写一些 python 脚本来散列一些单词。我正在使用 hashcat 来验证我的输出,但出了点问题,这应该是一个非常简单的过程。但我无法确定我做错了什么。只有我的输出的最后一个散列被正确散列。在示例文件中使用“123456”作为 5 行的测试时,我得到以下输出:
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
e10adc3949ba59abbe56e057f20f883e
谁能指出我方法的错误。将不胜感激。
import hashlib
my_file = open("sample.txt" , "r")
for line in my_file:
try:
hash_object = hashlib.md5(line)
print(hash_object.hexdigest())
except:
print "Error"
my_file.close()
前四行的哈希值不同,因为您在 MD5 哈希计算中包含了回车 return。最后一行没有这个回车 return,因此 return 是一个不同的值。只需使用 strip()
删除回车符 return,您将获得所有五行的相同散列:
import hashlib
my_file = open("sample.txt" , "r")
for line in my_file:
try:
hash_object = hashlib.md5(line.strip())
print(hash_object.hexdigest())
except:
print "Error"
my_file.close()
这给出了输出:
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
您的代码存在的问题是您正在散列整行,即最后包含“\n”的“123456\n”。
最后一行不包含 '\n' 这就是为什么它的散列与“123456”的散列相匹配的原因
尝试 trim 散列之前的行,您就可以开始了。
将 hash_object = hashlib.md5(line)
更改为 hash_object = hashlib.md5(line.strip())
。
我正在尝试编写一些 python 脚本来散列一些单词。我正在使用 hashcat 来验证我的输出,但出了点问题,这应该是一个非常简单的过程。但我无法确定我做错了什么。只有我的输出的最后一个散列被正确散列。在示例文件中使用“123456”作为 5 行的测试时,我得到以下输出:
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
f447b20a7fcbf53a5d5be013ea0b15af
e10adc3949ba59abbe56e057f20f883e
谁能指出我方法的错误。将不胜感激。
import hashlib
my_file = open("sample.txt" , "r")
for line in my_file:
try:
hash_object = hashlib.md5(line)
print(hash_object.hexdigest())
except:
print "Error"
my_file.close()
前四行的哈希值不同,因为您在 MD5 哈希计算中包含了回车 return。最后一行没有这个回车 return,因此 return 是一个不同的值。只需使用 strip()
删除回车符 return,您将获得所有五行的相同散列:
import hashlib
my_file = open("sample.txt" , "r")
for line in my_file:
try:
hash_object = hashlib.md5(line.strip())
print(hash_object.hexdigest())
except:
print "Error"
my_file.close()
这给出了输出:
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
您的代码存在的问题是您正在散列整行,即最后包含“\n”的“123456\n”。
最后一行不包含 '\n' 这就是为什么它的散列与“123456”的散列相匹配的原因
尝试 trim 散列之前的行,您就可以开始了。
将 hash_object = hashlib.md5(line)
更改为 hash_object = hashlib.md5(line.strip())
。