【发布时间】:2015-05-02 14:53:14
【问题描述】:
我想使用算法对长字符串进行哈希处理。
我需要它是唯一的,因为我记录更改,并且不想保留整个字符串(可能从 300 字节到 1000 字节不等)。
我想到了 MD5(也许是 sha - 我不知道),但是这个算法是否“承诺”不会重复任何算法(即使是一个天文机会 - 机会是什么?)。
有没有更好的算法,特别是对于字符串值(所有可读的 ascii 值。主要是所有字母和所有数字,包括 '-' 和 '.')?
谢谢:)
【问题讨论】:
-
哈希根据定义不是唯一的。如果算法将两个不同的字符串散列到相同的值,您的方法必须仍然有效,尽管机会很小。是吗?
-
如果内存确实是个问题(是吗?你测量过吗?)但你仍然想要精确匹配,散列对你没有帮助,散列根据定义是有损的。你可以试试像LZO这样的无损压缩算法。