0

我正在尝试将用户访问日志转换为纯二进制格式,这需要我使用某种哈希方法将字符串转换为int,然后将“id->字符串值”的映射关系存储在某处以进一步向后检索.

由于我使用的是Python,为了节省一些处理时间,而不是引入hashlib来计算hash,我可以简单地使用

string_hash = id(intern(some_string)) 

作为哈希方法?与 MD5 / SHA1 相比,有什么需要注意的基本区别吗?冲突概率明显高于MD5/SHA1吗?

4

1 回答 1

2

不工作。id不保证在解释器执行中保持一致;在 CPython 中,它是对象的内存位置。即使它是一致的,它也没有足够的字节来抵抗碰撞。为什么不继续使用字符串?ASCII 或 Unicode,字符串可以很容易地序列化。

于 2013-08-10T04:00:00.630 回答