0
所以我设法成功加密用户密码并将它发送给数据库等..我只是想知道我将如何去解密或其他方法来检查,看看用户输入与DB密码匹配。每次哈希处理不同的加密密码是created.Using PHP 4.3如何在加密后确认密码
<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安全等等。我只是想了解如何我之前做到这一点在我的实际页面中实现代码。
我不完全明白你想要做什么。是否正确,你想要做一些像'decrypt($ pass)'来比较它''密码'? – derlarsschneider
我会使用密码(JavaScript)的客户端散列。 – DanFromGermany
更新PHP至少5.5,2013年6月20日发布,更好的更新到PHP 7.使用'password_hash()'和'password_verify()'。使用旧版本只是攻击者的手中,他们寻找使用旧版本的网站。 – zaph