How to confirm password after encryption
因此,我成功地加密了用户密码,并将其发送到数据库等。我只是想知道如何进行解密或其他方法,以检查用户输入是否与db密码匹配。每次处理哈希时,都会创建一个不同的加密密码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <form method="post" action=""> <input type="text" name="user" id="user"> <input type="password" name="pass" id="pass"> <input type="submit" name="submit"> </form> <?php session_start(); require_once("connection.php"); require_once("passEncrypt.php"); if(isset($_POST["submit"])) { $user = $_POST["user"]; $password = $_POST["pass"]; $pass = encrypt($password); echo $pass; } ?> <?php function encrypt($pass){ // use blowfish algorithm 10 times $hash_format="$2a$10$"; $salt_length=22; $salt=generate_salt($salt_length); // store this in DB $format_and_salt=$hash_format . $salt ; $hash = crypt($pass, $format_and_salt); return $hash; } function generate_salt($length){ // return 32 character random string $unique_string = md5(uniqid(mt_rand(), true)); // provides valid characters $base64_string = base64_encode($unique_string); // replaces + with . $mod_base64_string = str_replace('+', '.', $base64_string ); // make string correct length $salt=substr($mod_base64_string, 0, $length); return $salt; } ?> |
我意识到数据没有被清理或者PHP安全等。在我将代码实现到实际页面之前,我只是想了解如何做到这一点。
(P)第一:这不是插头。电解是可逆的(p)(P)I would not use this code at all:(p)布尔奇1(P)Instead,use the password hashing api.我不想再重塑这里了(p)字母名称布尔奇1(P)不要使用菲律宾比索4。如果你做,你是全部在你自己。(p)