【发布时间】:2014-01-26 23:13:35
【问题描述】:
我有以下代码:(只是一个用于加密/散列的测试文件)
<!doctype html>
<html>
<head></head>
<body>
<?php
error_reporting('off');
if (isset($_POST['submit'])) {
$salt = "2bZ@<^$";
$hash = hash("sha512", $_POST['hash']);
$hash = $salt . $hash;
$hash = md5($hash);
echo $hash;
$hashLen = strlen($hash);
echo "<br>The length of the hashed word is " . $hashLen . " characters long!";
}
?>
<form action="hashed.php" method="post">
<input type="text" name="hash">
<input type="submit" value="Hash" name="submit">
</form>
</body>
</html>
这有多安全? 我知道这很可能会被黑客入侵,但需要多长时间? 我目前正在制作一个 php/mysqli 注册表单,并希望使用户的密码尽可能安全,这样黑客就需要很长时间才能破解其中一个用户密码。为了进一步加密它,我可以使用它,例如:
使用 sha512、md5(md5) 对其进行散列,添加不同的盐,另外两个 sha512,另一个 md5 和另一个不同的盐!
这听起来有多安全?黑客破解该密码需要多长时间? 请您建议我使用非常非常安全的加密方法。另外,我想让用户使用 cookie 保持登录状态:需要一种安全的方式将他们的信息存储在 cookie 中!
提前致谢:)
【问题讨论】:
-
增加了复杂性!= 增加了安全性。对所有密码使用相同的盐是完全不安全的。 password_hash() 是安全的,并且具有嵌入式安全盐。
标签: php security hash passwords password-protection