【发布时间】:2013-07-21 18:09:44
【问题描述】:
我有一些代码可以注册,但我不知道如何散列密码。我想用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);
我知道我的 mysql 登录没有密码。这是一个本地 mysql 服务器,仅用于测试。
【问题讨论】:
-
散列不加密。 sha512 是一种散列算法。散列后您的密码将无法检索。
-
@Russell 密码不应被检索,所以这不是问题。在未来的验证尝试中,提供的密码将被散列并与存储的散列匹配。
-
@GeorgeCummins 我同意这不是问题。我更担心使用不正确的术语。也就是说,他不想加密任何东西。这两个词不可互换。
-
我知道这个问题比较老了,但是因为大多数答案都弄错了(没有盐,只有简单的 sha512),这里有一篇关于如何hash passwords in PHP 的帖子。如果您对密码哈希感兴趣,请查看这篇关于 hashing passwords correctly 的帖子。