如何在用户密码中添加salt?

dee*_*rox 5 php

我使用简单的md5($password);格式,但我想添加盐,所以我怎么能这样做?

这是我的代码:

   if($success)
    {
        $data['firstname'] = $firstname;
        $data['lastname'] = $lastname;
        $data['username'] = $username;
        $data['password'] = md5($password);
        $data['email'] = $email;


        $newUser = new User($data);
        $newUser->save(true);
        $Newuser->login($username, $password);
        header("Location: welcome.php");

    }
Run Code Online (Sandbox Code Playgroud)

Ste*_*teB 8

$data['hashedpwd'] = md5($salt . $password);
Run Code Online (Sandbox Code Playgroud)

每个用户的时间越长,越复杂和独特,你就越难以获得密码(尽管这并非不可能).

一个简单的(但盐很差)将是:$salt = '10';
更强的盐将是:$salt = '-45dfeHK/__yu349@-/klF21-1_\/4JkUP/4';

用户独有的盐更好.

正如在几条评论中所提到的,md5是一个古老且相对较差的哈希算法,SHA-512或任何SHA-2系列都是更好的选择.

有关详细信息,请参阅此腌制问题.