谁用crypt()创建一个身份验证系统

时间:2015-06-28 11:27:34

标签: php mysql authentication crypt

当我在数据库中创建用户时,我使用crypt()函数来保护密码,但是当我尝试创建一个用于连接我的用户的身份验证系统时,我不明白它是如何工作的。

使用此代码,这总是会传入if" WRONG ID或PASSWORD" :

<?php

        //connexion to database
        include'connexionBDD.php';


        // Check connection
        if ($bdd->connect_error) {
            die("Connection failed: " . $bdd->connect_error);
        } 
        echo "Connected successfully (".$bdd->host_info.")";

        $pseudonyme = $_POST['pseudo'];
        $password= $_POST['mdp'];


        //on crypte le mot de passe
        $password= crypt($password);

        $req = $bdd->prepare('SELECT ID_utilisateur FROM utilisateurs 
                              WHERE Pseudonyme = :pseudo AND Mot_de_passe = :mdp');
        $req->execute(array(
            'pseudo' => $pseudonyme,
            'mdp' => $password));

        $result= $req->fetch();




        if(!$result)
        {
           echo "WRONG ID OR PASSWORD"; 
        }
        else
        {
            session_start();
            $_SESSION['ID_utilisateur'] = $resultat['ID_utilisateur'];
            $_SESSION['Pseudonyme'] = $pseudonyme;
            $pseudo = $_SESSION['Pseudonyme'];
            echo "<p> You are connected with $pseudo !<p></div>";
        }

          ?> 

1 个答案:

答案 0 :(得分:3)

crypt()截至目前不是存储密码的首选方式。

使用password_hash()生成密码,使用password_verify()进行比较。

示例代码:

func ==(lhs: MyObject, rhs: MyObject) -> Bool {
    return lhs.identifier == rhs.identifier
}

同样crypt()在PHP手册中有详细记载,请阅读。