【问题标题】:How to use $hash to encrypt password如何使用 $hash 加密密码
【发布时间】:2015-12-17 14:36:22
【问题描述】:

如何使这个 $hash 成为用户在注册网站时输入的密码?我已经使用 $hash 登录,当我使用手动输入的 $hash 密码对其进行测试时,它工作正常,但无法获取此表单来创建加密密码。

<?php
if(isset($_POST['emailaddress'],$_POST['password'],$_POST['name'])){
    $result= $pdo->prepare('INSERT INTO user (emailaddress, password, name )
                        VALUES(:emailaddress, :password, :name)');
    $hash = password_hash(password, PASSWORD_DEFAULT);
    unset($_POST['submit']);
    $result->execute($_POST);
    header("Location:admin.php");
}

【问题讨论】:

  • 你只是通过$_POST,从不通过$hash。像execute(array(':emailaddress' =&gt; $_POST['emailaddress'], ':password' =&gt; $hash, ...)) 这样的东西应该可以工作
  • password_hash(password, PASSWORD_DEFAULT); -> password_hash($_POST['password'], PASSWORD_DEFAULT);

标签: php hash password-hash


【解决方案1】:

在执行查询之前将$hash 添加到$_POST

$_POST['password'] = $hash;
$result->execute($_POST);

更好的是kingkero 评论的内容,这样可以避免$_POST 中不需要的值

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 2015-03-13
    • 2013-09-10
    • 2019-09-21
    • 1970-01-01
    • 2017-10-23
    • 2017-03-02
    • 2023-03-30
    • 2012-09-21
    相关资源
    最近更新 更多