何时进行散列不是算法中的好方法

时间:2012-09-07 17:27:05

标签: algorithm data-structures

我想知道何时散列不是一个好的方法。我知道散列函数可能是坏的,但是还有其他任何原因我们可以说这个问题或问题通过散列来解决是不好的。

2 个答案:

答案 0 :(得分:2)

哈希可能会发生冲突(不保证每次输入都是唯一的)。因此,如果您遇到哈希冲突不可接受的情况,那么您不应该使用哈希值。

相对于原始输入,散列通常也是无序的。也就是说,“1”的散列不能保证大于“2”的散列,等等。因此,如果您尝试对有序数据执行操作并保留顺序,则散列可能没用。

最后(希望显然),哈希是有损的 - 你无法从哈希中恢复原始的哈希文本。因此,除非您故意采用单向方式(例如密码),否则它们不应完全替换原始数据。

答案 1 :(得分:0)

裸哈希可能会导致安全问题。例如,如果MD5是一个通用密码,则哈希值都相似,并且您有一个主要的安全漏洞。