php sha2()用法

php sha2()用法,php,sha2,Php,Sha2,是否有一种方法可以比较在sha2()中加密后存储在数据库中的密码和用户在登录时输入的密码,而不加密登录时的密码?实际上,我想一个字符一个字符地匹配密码,并以大写或小写形式传递匹配,即,换句话说,在比较之前,是否有一个函数或方法对保存的密码进行解密?您想做的事情听起来很可疑。 无论如何,不,您无法恢复哈希字符串您无法“解密”SHA哈希。相反,请将输入密码的SHA版本与数据库中存储的密码(也是散列的)进行比较 您可能想使用数据库,但这只是一个简单的示例…;) sha1对密码进行哈希运算,但不加密密码

是否有一种方法可以比较在sha2()中加密后存储在数据库中的密码和用户在登录时输入的密码,而不加密登录时的密码?实际上,我想一个字符一个字符地匹配密码,并以大写或小写形式传递匹配,即,换句话说,在比较之前,是否有一个函数或方法对保存的密码进行解密?

您想做的事情听起来很可疑。
无论如何,不,您无法恢复哈希字符串

您无法“解密”SHA哈希。相反,请将输入密码的SHA版本与数据库中存储的密码(也是散列的)进行比较


您可能想使用数据库,但这只是一个简单的示例…;)

sha1
对密码进行哈希运算,但不加密密码。你不能逆转它。如果它是可逆的,那么首先就完全不需要对它进行散列。好的..那么如果我不能解密它然后比较字符,那么就没有办法逐个字符地匹配密码..除了在存储时不对密码进行散列之外??:(没错。但我不明白你为什么要这样做。也许如果你解释你试图解决的问题,我们可以提供另一种解决方案。事实上,我正试图将密码大小写设置为instive,因此我认为可以这样做。如果你想使密码不区分大小写,请将strtolower的密码哈希存储在t中创建数据库,并将其与strtolower的userinput和db hash进行比较。不过,您尝试执行的操作大大增加了暴力连接成功的机会。
$enteredpass = $_POST['password'];
$enteredpass = sha2($enteredpass);
$realpass = sha2('password123'); //Yup, best password EVAR!! xD
if ($enteredpass == $realpass) {
     echo "THE PASSWORD IS CORRECT!! :D";
}
else {
     echo "THE PASSWORD IS INCORRECT!!";
}