我正在尝试将用户访问日志转换为纯二进制格式,这需要我使用一些哈希方法将字符串转换为int,然后将“id - > string value”的映射关系存储在某处进一步向后检索。
由于我使用的是Python,为了节省一些处理时间,而不是引入hashlib来计算哈希,我可以简单地使用
string_hash = id(intern(some_string))
作为哈希方法?与MD5 / SHA1相比,要注意哪些基本差异?冲突的概率是否明显高于MD5 / SHA1?
答案 0 :(得分:2)
不起作用。 id
并不保证在翻译执行过程中保持一致;在CPython中,它是对象的内存位置。即使它是一致的,它也没有足够的字节来抵抗碰撞。为什么不继续使用字符串? ASCII或Unicode,字符串可以很容易地序列化。