我用 Python 编写了一个加密程序,我的选择之一是 md5 加密。当我通过我的 md5 加密运行已知字符串时,如果我通过 md5 加密网站或 firefox 的 cryptofox 运行完全相同的字符串,我会收到不同的哈希值。
例如。我的程序哈希输出 - fe9c25d61e56054ea87703e30c672d91
- 明文:g4m3
例如。在线哈希/cryptofox - 26e4477a0fa9cb24675379331dba9c84
- 明文:g4m3
完全相同的单词,2 个不同的哈希值。 现在是我的代码片段:
word="g4m3"
string=md5.new(word).hexdigest()
print string
最佳答案
您在 MD5 输入字符串中包含了一个换行符:
>>> import md5
>>> word="g4m3"
>>> md5.new(word).hexdigest() # no newline
'26e4477a0fa9cb24675379331dba9c84'
>>> md5.new(word + '\n').hexdigest() # with a newline
'fe9c25d61e56054ea87703e30c672d91'
从文件中读取数据时,确保删除行尾的换行符。您可以使用 .rstrip('\n')
仅从行尾删除换行符,或使用 .strip()
删除所有 行首或行尾的空格:
>>> word = 'g4m3\n'
>>> md5.new(word).hexdigest()
'fe9c25d61e56054ea87703e30c672d91'
>>> word = word.strip()
>>> md5.new(word).hexdigest()
'26e4477a0fa9cb24675379331dba9c84'
关于python - MD5 加密问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795593/