Tre*_*ker 5 php mysql hash sha512
我有一些代码注册工作,但我不知道如何哈希密码.我想用sha512.
$con=mysqli_connect("localhost","root","","users");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO users (username, password, email)
VALUES
('$_POST[username]','$_POST[password]','$_POST[email]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "Thank you.";
mysqli_close($con);
Run Code Online (Sandbox Code Playgroud)
我知道我的mysql登录没有密码.这是一个刚用于测试的本地mysql服务器.
您可以使用该hash()
函数来哈希密码:
$hashed_password = hash('sha512', $_POST['password']);
Run Code Online (Sandbox Code Playgroud)
然后修改insert语句以将散列密码插入数据库:
INSERT INTO users (username, password, email)
VALUES ('$_POST[username]', '$hashed_password', '$_POST[email]');
Run Code Online (Sandbox Code Playgroud)
请注意,由于您使用的是未经过授权的用户输入,因此您的SQL语句容易受到SQL注入攻击.为了提高安全性并保护数据的完整性,请在SQL语句中使用之前考虑转义和验证输入.实现此目的的一种方法是mysqli_real_escape_string()
:
$escaped_username = mysqli_real_escape_string( $con, $_POST['username'] );
$escaped_email = mysqli_real_escape_string( $con, $_POST['email'] );
Run Code Online (Sandbox Code Playgroud)