如果我有两个值相同的字符串,是否保证hash(s1) == hash(s2)
不使用hashlib
?另外,哈希中数字位数的上限是多少?
是否有可转换的hash
的替代方案?我理解哈希函数不应该像这样使用。但是从字符串到短十六进制字符串的1-1映射可以被反转并保证每个字符串不同?
这会起作用吗?
import zlib
# compress
zlib.compress("foo")
zlib.decompress(zlib.compress("foo")) == "foo" # always true?
感谢。
答案 0 :(得分:7)
YES。
>>>help(hash)
Help on built-in function hash in module builtins:
hash(...)
hash(object) -> integer
Return a hash value for the object. Two objects with the same value have
the same hash value. The reverse is not necessarily true, but likely.