从哈希中查找消息?
Find message from hash?
我最近读到 MD5 不安全,因为它可以在短时间内被追踪。
如果我只给一个固定的512位数据作为输入。
MD5 将给出 128 位哈希值(32 个十六进制值)
如果 MD5 有缺陷,那么在给定 128 位散列的情况下,谁能建议重构 512 位输入的最佳方法?
(旁注:我非常想实现这个。C++ 是提高速度的更好选择还是 Java 内置安全包?)
MD5 是一种简单快速的算法,尤其是在使用 GPU 实现时,因此可以通过暴力破解,这就是为什么它不是 'secure'。
但是它不安全的典型上下文是关于字符数量有限的密码及其典型组合(字典世界)
对于512位长的消息,即使使用MD5,暴力破解也需要很长时间,相当于64个字符的密码,目前暴力破解限制在10个字符左右。
有 2 ** 384(大约 4x10**115)个不同的 512 位块哈希到相同的 MD5。原则上也不可能逆转
是可能的,但是,在那些 4x10**115 块中找到 一个 产生与您的块相同的 MD5想要,这就是为什么它被认为是不安全的。例如,如果您将一个文件连同 MD5 散列一起发布到网上以验证其完整性,黑客可能会用具有相同散列的不同文件替换它。
使用像 SHA256 这样更安全的散列,即使这样也是不可能的。
我最近读到 MD5 不安全,因为它可以在短时间内被追踪。
如果我只给一个固定的512位数据作为输入。 MD5 将给出 128 位哈希值(32 个十六进制值)
如果 MD5 有缺陷,那么在给定 128 位散列的情况下,谁能建议重构 512 位输入的最佳方法?
(旁注:我非常想实现这个。C++ 是提高速度的更好选择还是 Java 内置安全包?)
MD5 是一种简单快速的算法,尤其是在使用 GPU 实现时,因此可以通过暴力破解,这就是为什么它不是 'secure'。 但是它不安全的典型上下文是关于字符数量有限的密码及其典型组合(字典世界)
对于512位长的消息,即使使用MD5,暴力破解也需要很长时间,相当于64个字符的密码,目前暴力破解限制在10个字符左右。
有 2 ** 384(大约 4x10**115)个不同的 512 位块哈希到相同的 MD5。原则上也不可能逆转
是可能的,但是,在那些 4x10**115 块中找到 一个 产生与您的块相同的 MD5想要,这就是为什么它被认为是不安全的。例如,如果您将一个文件连同 MD5 散列一起发布到网上以验证其完整性,黑客可能会用具有相同散列的不同文件替换它。
使用像 SHA256 这样更安全的散列,即使这样也是不可能的。