【问题标题】:Best algorithm to hash a string散列字符串的最佳算法
【发布时间】:2015-05-02 14:53:14
【问题描述】:

我想使用算法对长字符串进行哈希处理。

我需要它是唯一的,因为我记录更改,并且不想保留整个字符串(可能从 300 字节到 1000 字节不等)。

我想到了 MD5(也许是 sha - 我不知道),但是这个算法是否“承诺”不会重复任何算法(即使是一个天文机会 - 机会是什么?)。

有没有更好的算法,特别是对于字符串值(所有可读的 ascii 值。主要是所有字母和所有数字,包括 '-' 和 '.')?

谢谢:)

【问题讨论】:

  • 哈希根据定义不是唯一的。如果算法将两个不同的字符串散列到相同的值,您的方法必须仍然有效,尽管机会很小。是吗?
  • 如果内存确实是个问题(是吗?你测量过吗?)但你仍然想要精确匹配,散列对你没有帮助,散列根据定义是有损的。你可以试试像LZO这样的无损压缩算法。

标签: algorithm md5 sha


【解决方案1】:

您可以尝试 Rabin-Karp 算法 (RK)
Here 是来自 topcoder 的教程
你可以从here中学到很多关于散列的知识

【讨论】:

    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 2010-11-24
    • 2013-11-06
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2020-07-22
    相关资源
    最近更新 更多