【问题标题】:Why does `print hashlib.sha224(some_string).digest()` differs from its `repr()`?为什么 `print hashlib.sha224(some_string).digest()` 与它的 `repr()` 不同?
【发布时间】:2011-10-31 02:58:47
【问题描述】:

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

>>> thehash = hashlib.sha224(some_string).digest()

现在我意识到了

>>> print thehash

不一样

>>> thehash

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

【问题讨论】:

    标签: python mysql hash repr


    【解决方案1】:

    两者都没有。您应该改为调用 .hexdigest() 方法并存储它。

    【讨论】:

    • 如果我可以问:diggest()hexdiggest 有什么区别?我为什么要存储后者?
    • .digest() 将散列返回为二进制数据,而.hexdigest() 将散列编码为十六进制数字。您需要后者,因为它实际上总是可打印、可传输且一致的。
    猜你喜欢
    • 2021-12-21
    • 2021-05-19
    • 1970-01-01
    • 2021-01-08
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多