我想记住用户名和密码。 当检查cookie将设置并散列密码时,但在密码字段中重新调整散列密码时,它也会显示散列值 这是我编码和解码的代码请有人给出更好的解决方案吗?
I use this to remember password
<?php
if($_POST['remember']) {
$remember_user = trim($_POST['username']);
$remember_pass = trim($_POST['password']);
$salt = "@g26jQsG&nh*v";
$password_hash = sha1($remember_pass.$salt);
setcookie('remember_user', $remember_user, $year);
setcookie('remember_pass', $password_hash, $year);
$cookie_name = 'siteAuth';
$cookie_time = time() - 100;
$password_hash = sha1($remember_pass.$salt);
setcookie ($cookie_name, 'usr='.$remember_user.'&hash='.$password_hash, time() + $cookie_time);
}
else if(!$_POST['remember']) {
if(isset($_COOKIE['remember_user']) && parse_str($_COOKIE['remember_pass'])) {
if(($usr == $remember_user) && ($hash == md5($remember_pass)))
{
$_SESSION['username'] = $remember_user;
}
$cookie_name = 'siteAuth';
$cookie_time = time() - 100;
setcookie ($cookie_name, 'usr='.$remember_user.'&hash='.$password_hash, time() + $cookie_time);
}
}
?>
这是我的html部分,我想显示记住的密码
<input id="password" name="password" placeholder="Password" type="text" autocomplete="on" value="<?php
$salt="@g26jQsG&nh*v";
$password = sha1($_COOKIE['remember_pass'].$salt); echo $password; ?>"/>
但仍然在输出中f58b28222887e5cd4d10ec75d4bf2617c13a3f4a
我想返回原始密码
我怎么能这样做?
答案 0 :(得分:0)
查看password_hash和password_verify。
请参阅:http://www.sitepoint.com/hashing-passwords-php-5-5-password-hashing-api/
答案 1 :(得分:0)
通常,当您想要进行身份验证时,您或其他任何人都不应该知道客户的密码!永远不会意味着永远!
如果您希望进行身份验证,则应始终遵循以下步骤:
客户注册:hash(password+salt)
=&gt;插入数据库
客户端身份验证:您检查是否
hash(Input_Password+salt)==(Password in DB)