【发布时间】:2016-11-05 18:20:24
【问题描述】:
我要做的是通过散列函数输入数字,并将生成的散列存储到数组中。我正在尝试查找是否有任何数字导致在最后一个字符中匹配的类似哈希值。我正在尝试找到最大可能的匹配字符。
我创建了一个哈希数组。 我的代码正在做这样的事情:
创建哈希数组
我=1
用 i 做一些计算,得到一个新的结果,称之为“结果”
然后我将结果放入指向创建它的对象的哈希中
哈希[结果]=i
那么我有这样的事情:
{"abcd"=>1}
增加 i
循环直到某个条件
所以当我增加 i 并再次通过一些计算时,我想通过首先比较结果末尾的字符来检查是否与之前的结果有任何相似之处
假设当我计算 2 时得到“hwed”,我想要一种方法来比较并看到最后一个字符中的“abcd”和“hwed”匹配。有谁知道我该怎么做。
【问题讨论】:
-
感觉哈希不是这种比较的正确数据结构。也许后缀树(或类似的东西)可能是更好的选择。所有结果总是四个字符长吗?您是只对最后一个字符感兴趣还是有时对更长的后缀感兴趣?
-
嗨,我实际上是通过 sha256 散列输入数字,我正在存储结果,并尝试查找是否有数字会产生相似的散列,并以一定的长度匹配。在我将它们转换为字符串后,生成的哈希将始终为 64 长度