md5哈希加解密

Md5 hash encryption and decryption

我对 md5 感到困惑。 我知道如果不尝试暴力破解之类的东西,我们就无法解密 MD5,这非常困难。 现在,为了一个 md5 哈希,我访问了这个网站。 MD5Online 出于好奇,我将该加密密码解密为 并获得了解密密码。 然后我尝试了 4-5 个密码,这些密码以前存储在我的数据库中,这个网站解密了所有这些密码。

然后我尝试了下面的代码。

<?php
        $password = 'cool@123@!';
        $secure_md5password = md5($password);
        echo $secure_md5password;
?>

我得到了这个 md5 哈希:6234c13c3e1b965dbdd32d604151bd1b

我在解密这个网站时尝试了这个哈希,我得到了 'cool@123@!'。 我也尝试了其他最难的密码。

所以现在我对 md5 算法感到困惑。该网站是否在进行暴力破解或其他任何操作,我们能否使用该网站正在使用的 php 中的任何代码。 我访问这些链接寻求答案,但找不到答案。 1).encrypt-and-decrypt-md5 2).is-md5-decryption-possible 3).how-to-decrypt-an-md5-string-in-php

该网站可能正在使用 rainbow tables.

关于这个主题的信息: https://en.wikipedia.org/wiki/Rainbow_table

简单地说:如果他们曾经暴力破解哈希,他们会将哈希和密码保存在 table 中。 当有人输入哈希时,他们将搜索 table 并检索未哈希的值。

MD5 已被证明是一种弱算法。由于您所有的 'passwords' 都是基本密码,该网站已经用很久以前破解的哈希值存储了每个密码。

您无法解密散列,但您可以暴力破解它是什么。

在此处阅读更多内容: https://en.wikipedia.org/wiki/MD5

此处: https://security.stackexchange.com/questions/19906/is-md5-considered-insecure

编辑:看到您更新了问题。

假设您有一个复杂的密码 'ajfn3inf' 然后你要散列它。 运行 由于 md5 破解器的长度相对较短,而且 GPU 破解哈希的能力很强,因此它很容易解散。阅读上面的链接以了解有关 MD5 的更多信息。

是的,这是通过蛮力完成的。 我敢肯定,如果您的密码超过 12 个字符,那么这个网站是完好的。md5 已过时且不再使用。 相反,使用系统进行加密 password_hash http://php.net/manual/ru/function.password-hash.php

您可以将 salt 与 md5 一起使用。并使用强密码策略验证强密码。