我正在阅读有关使用 java 进行 MD5 加密的内容。我想知道当你可以一劳永逸地计算每个可能字符串的哈希值时,它如何才能安全。这肯定会花费一些时间,但是一旦完成,您就可以将所有对存储在数据库表中,并相当快地搜索该表中的任何哈希码......对吗?
我错过了什么?
提前致谢。
最佳答案
MD5 生成 2^128 个可能的值,因此您至少需要 2^128 个散列字符串才能完整覆盖。每秒哈希 2^32 个字符串(这是很多),您将需要 79228162514264337593543950336 秒,即 2512308552583217199186 年。
就我个人而言,我预计不会持续这么久。宇宙也很可能不会。
关于security - MD5加密不是通过一次性计算每个字符串的哈希值来进行逆向工程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4407270/