使用Salt加密密码PHP

时间:2012-11-19 09:04:15

标签: php security salt

这是我的代码,

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

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

2 个答案:

答案 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答案:

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