Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试将用户访问日志转换为纯二进制格式,这需要我使用某种哈希方法将字符串转换为int,然后将“id->字符串值”的映射关系存储在某处以进一步向后检索.
由于我使用的是Python,为了节省一些处理时间,而不是引入hashlib来计算hash,我可以简单地使用
string_hash = id(intern(some_string))
作为哈希方法?与 MD5 / SHA1 相比,有什么需要注意的基本区别吗?冲突概率明显高于MD5/SHA1吗?
不工作。id不保证在解释器执行中保持一致;在 CPython 中,它是对象的内存位置。即使它是一致的,它也没有足够的字节来抵抗碰撞。为什么不继续使用字符串?ASCII 或 Unicode,字符串可以很容易地序列化。
id