gpt4 book ai didi

php - 如何在 $_POST 上散列 SHA2?

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:26 25 4
gpt4 key购买 nike

我正在尝试使用 SHA2 加密我的“密码”列。问题是对 MYSQL 的注入(inject)是通过 $_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 吗??

最佳答案

再看看例子。

mysql> INSERT INTO userpassword(id, username,password)
-> VALUES(null,'Lili',SHA2('mypassword1',256));

引号围绕着字符串。 SHA2() 函数调用绕过引号。

SHA2() 也接受两个 参数。

'SHA2($_POST[pwrd])'

应该是:

SHA2('$_POST[pwrd]', 256)

... 但不要将 POST 数据直接粘贴到您的 SQL 中。它让你容易受到 SQL injection attacks 的攻击 你需要 defend自己从。

关于php - 如何在 $_POST 上散列 SHA2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23264343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com