python hashlib.md5转义字符

时间:2014-01-19 11:16:20

标签: python md5

以下代码段介绍了python hashlib.md5的基本用法(在py2.7中)。

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update('phrase')
>>> m.digest()
'8Z\xa58^\x83\xef\xc5\xd8<u\x88\xee_\xb7\xe8'
>>> type(m.digest())
<type 'str'>

我有两个问题:

  1. 如何将十六进制表示转换为人类可读的文本?
  2. python没有返回像385aa5385e83efc5d83c7588ee5fb7e8之类的简单哈希的原因是什么?这个转义的十六进制表示用于什么?

2 个答案:

答案 0 :(得分:2)

For 1。:只需使用m.hexdigest()

请参阅此处了解文档:http://docs.python.org/2/library/hashlib.html#hashlib.hash.hexdigest

答案 1 :(得分:1)

您正在查看哈希摘要的二进制表示。你想要的是由hash.hexdigest()生成的十六进制摘要:

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update('phrase')
>>> m.hexdigest()
'385aa5385e83efc5d83c7588ee5fb7e8'

Python允许您访问原始二进制值和十六进制表示。