这是我的代码,
<?php
function($string){
$salt = "@x5v";
$hash = sha1(md5($salt.$string)).md5($string).sha1(md5($string));
return $hash;
}
?>
<?php
print "<center>";
if(isset($_POST['username'])){
echo 'Variable is set and I can use it!';
}
$Username = $_POST["username"];
$Password = md5($_POST["password.$hash"]);
$Email = $_POST["email"];
?>
我认为这条线导致了这个问题:
$Password = md5($_POST["password.$hash"]);
将用户密码传递到数据库中的正确语法是什么,使用我在上面定义的字符串加密?
答案 0 :(得分:2)
我认为这就是导致问题的原因:
$ Password = md5($ _ POST [“password。$ hash”]);
你在这里做的不正确。它应该是:
$Password = md5($_POST["password"] . $hash);
你所做的实际上是使用一个密钥进行索引到$ _POST,这个密钥最终会变成'password.fdg858fug83u5g5'。
答案 1 :(得分:0)
我推荐这个库,而不是推出自己的解决方案:
http://www.openwall.com/phpass/
这是一篇解释如何使用它的文章:
http://sunnyis.me/blog/secure-passwords/
您也应该阅读此StackOverflow答案: