首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码散列

密码散列
EN

Stack Overflow用户
提问于 2016-05-06 07:14:49
回答 1查看 78关注 0票数 0

我有一个登记表,其中输入的数据被写入数据库。密码'pw‘将使用BCRYPT进行散列,此密码与以下代码正确工作:

$pwHash = pw_hash($pw,PASSWORD_BCRYPT,array(‘成本’=> 10));

问题:

当我想更新数据时,它将无法工作。下面的代码不加密地将数据写入数据库。

如何使密码加密?

有人能帮我吗?

代码语言:javascript
复制
<?php
include_once 'dbcon.php';
$id = $_POST['id'];
$fn = $_POST['fn'];
$ln = $_POST['ln'];
$em = $_POST['em']; 
$hid = $_POST['hid']; 
$tn = $_POST['tn'];
$us = $_POST['us'];
$pw = $_POST['pw'];
$ul = $_POST['ul'];

$chk = $_POST['chk'];
$chkcount = count($id);
for($i=0; $i<$chkcount; $i++)

$pwHash = pw_hash($pw, PASSWORD_BCRYPT, array('cost' => 10));

{
 $MySQLiconn->query("UPDATE user SET FName='$fn[$i]', LName='$ln[$i]', Email='$em[$i]', HerbalifeID='$hid[$i]', TelNr='$tn[$i]', UplineS='$us[$i]', Password='$pwHash[$i]', UserLevel='$ul[$i]'  WHERE UserID=".$id[$i]);
}
header("Location: indexAdmin.php");
?>

EN

回答 1

Stack Overflow用户

发布于 2016-05-06 07:22:14

我想修复应该是以下几点

代码语言:javascript
复制
<?php
include_once 'dbcon.php';
$id = $_POST['id'];
$fn = $_POST['fn'];
$ln = $_POST['ln'];
$em = $_POST['em'];
$hid = $_POST['hid'];
$tn = $_POST['tn'];
$us = $_POST['us'];
$pw = $_POST['pw'];
$ul = $_POST['ul'];

$chk = $_POST['chk'];
$chkcount = count($id);
for ($i = 0; $i < $chkcount; $i++) {

    $pwHash = password_hash($pw[$i], PASSWORD_BCRYPT, array('cost' => 10));
    $MySQLiconn->query("UPDATE user SET FName='$fn[$i]', LName='$ln[$i]', Email='$em[$i]', HerbalifeID='$hid[$i]', TelNr='$tn[$i]', UplineS='$us[$i]', Password='$pwHash', UserLevel='$ul[$i]'  WHERE UserID=".$id[$i]);
}
header("Location: indexAdmin.php");

这些变化是

  1. 在同一个循环中创建pwHash变量和更新表。
  2. 访问$pw[$i]作为其他变量,如$id$fn --它们似乎都是数组。
  3. $pwHash不是数组,而是像标量变量一样访问它。
  4. 使用password_hash函数-基于保罗·克罗夫拉注释的更新

与代码相关的问题有几个。我认为最重要的一点是,代码是向SQL注入攻击开放的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37066462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档