security - MD5加密不是通过一次性计算每个字符串的哈希值来进行逆向工程吗?

标签 security md5

我正在阅读有关使用 java 进行 MD5 加密的内容。我想知道当你可以一劳永逸地计算每个可能字符串的哈希值时,它如何才能安全。这肯定会花费一些时间,但是一旦完成,您就可以将所有对存储在数据库表中,并相当快地搜索该表中的任何哈希码......对吗?

我错过了什么?

提前致谢。

最佳答案

MD5 生成 2^128 个可能的值,因此您至少需要 2^128 个散列字符串才能完整覆盖。每秒哈希 2^32 个字符串(这是很多),您将需要 79228162514264337593543950336 秒,即 2512308552583217199186 年。

就我个人而言,我预计不会持续这么久。宇宙也很可能不会。

关于security - MD5加密不是通过一次性计算每个字符串的哈希值来进行逆向工程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4407270/

相关文章:

hash - 哈希任意对象的正确方法

php - 使用md5为CSS样式生成唯一id

hash - 在 F# 中使用 MD5

azure - 如何防止Azure表注入(inject)?

c# - "Security Models"有多少种?

android - Android 应用程序的安全性

cuda - GPU MD5/SHA1 哈希器

security - flutter 中敏感数据存储在哪里?

java - 解决 JBoss 中的 session 固定问题

php - 在 WordPress 中比较散列密码与 PHP