我正在开发一个需要散列二进制数据的应用程序,并将散列存储在64位长的结构中。我正在寻找加密哈希函数。 Ripemd-64和elf-64是我找到的一些可能性,但是我找不到很多关于它们的数据(例如,它们是用不太强力的比赛破解,它们需要多长时间才能打破等等)。欢迎任何链接或细节。
据我所知,由于哈希的长度,64位会有些不安全。我可能会有一些额外的位(72-74)。问题是我不是一个密码学家,所以我不知道如何修改一个哈希函数来返回一些长度为X的哈希。我想如果我可以使用超过64位的72位,我将获得更大的哈希空间。如何更改哈希函数以使长度为非标准量?
欢迎任何帮助!
谢谢, 埃里克
答案 0 :(得分:3)
是的,出于安全考虑,64位不是很多。它可能是强制性的,取决于您的应用程序。但是假设你接受了这个事实并且仍然希望继续前进,我认为只是截断正常的128/256位哈希没有任何问题。
意思是,只需使用您想要的任何加密库中的强哈希函数,并且只使用它的前64位。一个“适当的”方法是找到一个原生输出64位的哈希算法,但据我所知,人们已经停止制作它们了。找到可用的实现将更加困难。
话虽如此,我仍然建议你研究一下你的数据结构更大。