在php中实现crypt()

时间:2013-05-02 06:36:24

标签: php mysql crypt

我正在尝试加密给定的密码以匹配数据库中的密码。但是,使用crypt()每次都会给我一个不同的结果,因此它永远不会匹配。我怎样才能做到这一点。

这是散列用户密码的语句。

if (empty($_POST) === false) {
        $username = $_POST['username'];
        $password = crypt($_POST['password']);

在此之前,我手动创建了具有crypt('password')的用户,但如果我在字段中输入“密码”则不匹配。

3 个答案:

答案 0 :(得分:4)

尝试以下:

if (isset($_POST['username']) && isset($_POST['password'])) {
  $username = $_POST['username'];
  $password = $_POST['password'];

  // get the hashed password from database
  $hashed_password = get_from_db($username);

  if (crypt($password, $hashed_password) == $hashed_password) {
    echo "Password verified!";
  }
}

答案 1 :(得分:2)

试试这个,

//$pass_entered_from_login is the user entered password
//$crypted_pass is the encrypted password from the
//database or file
if(crypt($pass_entered_from_login,$crypted_pass)) == $crypted_pass)
{
   echo("Welcome to my web site.")
}

Read more

答案 2 :(得分:-2)

每次使用时,

crypt auto都会生成盐............ 所以对用户使用相同的盐 在将用户注册到数据库时以及在检查过程中执行此操作。

if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = crypt($_POST['password'],$_POST['username']);
 }

注意:第二个参数是加密函数中的盐

希望它有所帮助:)