Python 为什么'print hashlib.sha224(some_string.digest()'与其'repr()'不同?
我想在数据库表中存储一些字符串的哈希值。为此,我创建了一个varchar(64)类型的列。我会生成如下哈希:Python 为什么'print hashlib.sha224(some_string.digest()'与其'repr()'不同?,python,mysql,hash,repr,Python,Mysql,Hash,Repr,我想在数据库表中存储一些字符串的哈希值。为此,我创建了一个varchar(64)类型的列。我会生成如下哈希: >>> thehash = hashlib.sha224(some_string).digest() 现在我意识到 >>> print thehash 不一样 >>> thehash (到现在为止,我已经知道打印“测试”和打印“测试”之间的区别了……:))我不知道现在应该存储哪个部分。repr()或其他版本?两者都不是。您应该调
>>> thehash = hashlib.sha224(some_string).digest()
现在我意识到
>>> print thehash
不一样
>>> thehash
(到现在为止,我已经知道打印“测试”和打印“测试”之间的区别了……:))我不知道现在应该存储哪个部分。
repr()
或其他版本?两者都不是。您应该调用.hexdigest()
方法并存储该方法。两者都不是。您应该调用.hexdigest()
方法并存储它。如果我可以问的话:diggest()
和hexdiggest
之间有什么区别?为什么要存储后者?.digest()
将哈希值作为二进制数据返回,而.hexdigest()
将哈希值编码为十六进制数字。你想要后者,因为它实际上总是可打印、可传输和一致的。如果我可以问:diggest()
和hexdiggest
之间有什么区别?为什么要存储后者?.digest()
将哈希值作为二进制数据返回,而.hexdigest()
将哈希值编码为十六进制数字。您需要后者,因为它实际上始终是可打印、可传输和一致的。