我正在使用代码
$password1 = password_hash($password, PASSWORD_BCRYPT);
并尝试将$encrypt插入数据库。我想找出一种解密它们的方法。这可能吗??怎么做??如果我错了,对不起。
$encrypt
voj3qocg1#
不,你不应该能够做到这一点。散列在设计上被认为是不可逆的,这是设计的目标,如果你可以逆转一个算法的散列结果,那么这个算法是错误的,应该被避免。
有一种方法可以通过暴力破解来猜测密码。您可以:1.列出你能想到的所有可能的密码组合。2然后,1.你可以用你用过的相同算法,对它们中的每一个做一个散列。1.如果其中一个与您的密码的哈希值匹配,就可以了。有人已经为此目的制作了工具,你可以试试。例如:
不要抱太大希望,如果你要破解的密码不在"你能想象到的所有可能的密码组合"列表中,那么你就无法通过这种方式获得它。
你通常会比较登录用户输入密码的哈希值和数据库密码的哈希值,相同的字符串经过相同的哈希过程,总是会得到相同的结果。例如,
$user = my_get_user($_POST['username']); if ($user === null) { // login failed // ... } else if (!password_verify($_POST['password'], $user->password)) { // login failed // ... } else { // login success // ... }
作为一个诚实的服务提供商,你不应该知道你用户的真实密码。而哈希是一种确保你可以在根本不知道用户密码的情况下检查他们密码的方法。
ecfsfe2w2#
不,如果您使用任何加密算法,则无法还原为原始值。否则,黑客会在几秒钟内炸毁你的网站。使用散列算法的唯一目的是保存和加密数据使用一个非常大的值。有许多算法做加密其中一些是md1和sha1。许多网站提供他们可以检索原始值,但不是在瞬间。它需要暴力破解来恢复原始密码。
mspsb9vt3#
取决于你的网站程序系统平台。对于一些网站,它是你的密码和另一个变量的组合,有时被称为**“盐”与秘密算法,并真正取决于所使用的平台,它可能会有所不同。如果你创建自己的程序,你可能会哈希和反哈希你自己的密码只是为了测试你的代码,然后你可以逆转这个过程,但它非常容易解密。其他一些使用密钥结合你的哈希值,还有其他方法来实现这一点,但从来没有直接。MD5哈希生成器http://www.miraclesalad.com/webtools/md5.phpMD5哈希解密https://www.md5online.org/md5-decrypt.html我还没有看到一个智能平台程序使用简单的hash**/decrypt hash算法作为密码验证过程。但是你可以编写自己的代码,只用于测试目的。
3条答案
按热度按时间voj3qocg1#
不,你不应该能够做到这一点。
散列在设计上被认为是不可逆的,这是设计的目标,如果你可以逆转一个算法的散列结果,那么这个算法是错误的,应该被避免。
强力开裂
有一种方法可以通过暴力破解来猜测密码。
您可以:
1.列出你能想到的所有可能的密码组合。2然后,
1.你可以用你用过的相同算法,对它们中的每一个做一个散列。
1.如果其中一个与您的密码的哈希值匹配,就可以了。
有人已经为此目的制作了工具,你可以试试。例如:
不要抱太大希望,如果你要破解的密码不在"你能想象到的所有可能的密码组合"列表中,那么你就无法通过这种方式获得它。
散列密码的通常使用方式
你通常会比较登录用户输入密码的哈希值和数据库密码的哈希值,相同的字符串经过相同的哈希过程,总是会得到相同的结果。
例如,
作为一个诚实的服务提供商,你不应该知道你用户的真实密码。而哈希是一种确保你可以在根本不知道用户密码的情况下检查他们密码的方法。
ecfsfe2w2#
不,如果您使用任何加密算法,则无法还原为原始值。否则,黑客会在几秒钟内炸毁你的网站。使用散列算法的唯一目的是保存和加密数据使用一个非常大的值。有许多算法做加密其中一些是md1和sha1。许多网站提供他们可以检索原始值,但不是在瞬间。它需要暴力破解来恢复原始密码。
mspsb9vt3#
取决于你的网站程序系统平台。对于一些网站,它是你的密码和另一个变量的组合,有时被称为**“盐”与秘密算法,并真正取决于所使用的平台,它可能会有所不同。如果你创建自己的程序,你可能会哈希和反哈希你自己的密码只是为了测试你的代码,然后你可以逆转这个过程,但它非常容易解密。其他一些使用密钥结合你的哈希值,还有其他方法来实现这一点,但从来没有直接。
MD5哈希生成器http://www.miraclesalad.com/webtools/md5.php
MD5哈希解密https://www.md5online.org/md5-decrypt.html
我还没有看到一个智能平台程序使用简单的hash**/decrypt hash算法作为密码验证过程。但是你可以编写自己的代码,只用于测试目的。