我正在尝试使用 SHA2 加密我的“密码”列。问题是注入 MYSQL 是通过 $_POST 变量,所以我不明白我应该把 SHA2() 放在哪里。
这是我的“插入”页面(inscreate.php):
<?php
include 'header.php';
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]','$_POST[pwrd]','$_POST[bdate]','$_POST[mail]')";
if (!mysqli_query($con,$ins))
{
die('Error: ' . mysqli_error($con));
}
echo "User added! You will be returned to the index page!";
mysqli_close($con);
?>
根据我的阅读,我必须将其放在插入查询的“值”部分:http: //coderlearner.com/MySQL_Encryption-Decryption_Example_SHA2
所以我尝试了这些组合:
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]','SHA2($_POST[pwrd])','$_POST[bdate]','$_POST[mail]')";
但是如果密码是例如:mypass,我的数据库中的输出是这样的:SHA2(mypass)
我试过这个:
$ins="INSERT INTO users (uname, pwrd, bdate, mail)
VALUES ('$_POST[uname]',$_POST[SHA2(pwrd)]','$_POST[bdate]','$_POST[mail]')";
但后来我得到一个解析错误(我明白为什么,但我仍然只是在尝试)所以我的问题是:有谁知道我如何加密 $_POST?