使用php编码密码并在cookie中解码

时间:2016-01-25 03:39:20

标签: php cookies salt

我想记住用户名和密码。 当检查cookie将设置并散列密码时,但在密码字段中重新调整散列密码时,它也会显示散列值 这是我编码和解码的代码请有人给出更好的解决方案吗?

I use this to remember password
<?php
if($_POST['remember']) {
$remember_user = trim($_POST['username']);
$remember_pass = trim($_POST['password']);

$salt = "@g26jQsG&nh*&#8v";
$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*&#8v"; 
  $password = sha1($_COOKIE['remember_pass'].$salt); echo $password; ?>"/>

但仍然在输出中f58b28222887e5cd4d10ec75d4bf2617c13a3f4a 我想返回原始密码 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

通常,当您想要进行身份验证时,您或其他任何人都不应该知道客户的密码!永远不会意味着永远!

如果您希望进行身份验证,则应始终遵循以下步骤:

客户注册:hash(password+salt) =&gt;插入数据库 客户端身份验证:您检查是否

hash(Input_Password+salt)==(Password in DB)