-1

这是我的代码,

    <?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"]);

将用户密码传递到数据库的正确语法是什么,用我上面定义的字符串加密?

4

2 回答 2

2

我认为这是导致问题的这条线:

$Password = md5($_POST["password.$hash"]);

你在这里做的是不正确的。它应该是:

$Password = md5($_POST["password"] . $hash);

你所做的实际上是使用一个最终会像“password.fdg858fug83u5g5”这样的键来索引 $_POST。

于 2012-11-19T10:04:23.573 回答
0

我推荐这个库而不是滚动你自己的解决方案:

http://www.openwall.com/phpass/

这是一篇解释如何使用它的文章:

http://sunnyis.me/blog/secure-passwords/

您也应该阅读这个 StackOverflow 答案:

https://stackoverflow.com/a/6337021/943102

于 2012-11-19T09:06:35.280 回答