为什么`print hashlib.sha224(some_string).digest()`与``repr()`不同?

Auf*_*ind 0 python mysql hash repr

我想在我的数据库表中存储一些字符串的哈希值.为此,我创建了一个varchar(64)类型的列.我确实生成了这样的哈希:

>>> thehash = hashlib.sha224(some_string).digest()
Run Code Online (Sandbox Code Playgroud)

现在我意识到了

>>> print thehash
Run Code Online (Sandbox Code Playgroud)

是不一样的

>>> thehash
Run Code Online (Sandbox Code Playgroud)

(到现在为止,我知道>>> print 'test'>>> 'test'...... 之间的区别:-))我很困惑我现在应该存储哪一部分.该repr()版本还是其他版本?

Ign*_*ams 5

都不是.您应该调用该.hexdigest()方法并存储它.

  • `.digest()`将哈希值作为二进制数据返回,而`.hexdigest()`返回编码为十六进制数字的哈希值.你想要后者,因为它几乎总是可打印,可移动和一致. (4认同)