使用盐来加密密码PHP



这是我的代码,

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

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

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

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

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

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

您正在做的实际上是使用一个密钥索引到 $_POST,该密钥最终会变成"password.fdg858fug83u5g5"之类的内容。

我推荐这个库,而不是推出自己的解决方案:

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

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

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

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

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

最新更新