[RESOLU] Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

Re: Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par elevedavid » 07 janv. 2023, 14:16

j'ai trouvé mes erreurs :

Effectivement dans ma table je suis passé à 255 caractères et le PASSWORD_ARAGON2I remplacé par PASSWORD_DEFAULT

Re: Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par elevedavid » 07 janv. 2023, 13:53

je ne comprends pas pourquoi le user et le mot de passe ne s'enregistre pas dans la table. pour la table j'ai mis 34 caractères maxi
$user_input_login = $_POST['user_input_login'];
$password_input_login = $_POST['password_input_login'];                
$password_input_login_hash = password_hash($password_input_login, PASSWORD_ARGON2I);
                
                if($mysqli->query('INSERT INTO user (user_login, user_password) VALUES ("'.$user_input_login.'", "'.$password_input_login_hash.'")')){
                    echo 'Vous êtes enregistré en tant que membre, vous pouvez vous connecter.';
                }

merci de votre aide

Re: Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par elevedavid » 07 janv. 2023, 13:36

j'ai essayé mais j'ai un truc qui merde et je ne comprends pas quoi !!

Re: Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par pbarroca » 05 janv. 2023, 17:07

Hello,

il existe déjà une fonction php pour ça qui s'appelle password_hash() et son pendant password_verify()
c'est la solution la plus simple à mon avis

Re: Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par or 1 » 04 janv. 2023, 23:01

mais j'ai une erreur
laquelle ?

Crypté un mot de passe en 34 caractères pour une connexion et l'enregistré dans une base de donnée

par elevedavid » 04 janv. 2023, 22:48

Bonjour,

Je souhaite crypter un mot de passe en 34 caractères avec la fonction crypt(), mais j'ai une erreur et je ne trouve pas la solution et l'histoire du salt je ne comprends pas.

la ligne qui fonctionne pas : $password_input_login_crypt = crypt($password_input_login);

Merci de votre aide
<?php
    if(isset($_POST['submit_save'])){
        $user_input_login = $_POST['user_input_login'];
        $password_input_login = $_POST['password_input_login'];
        if((empty($user_input_login)) OR (empty($password_input_login))){
            echo 'Merci de saisir votre identifiant et votre mot de passe.';
        }
        else{
            $result = $mysqli->query('SELECT user_login, password_login FROM user WHERE user_login = "'.$user_input_login.'"');
            $row = $result->fetch_array();
            if(isset($row['user_login'])){
                echo  'Vous êtes déjà membres !!';              
            }
            else{
                $password_input_login_crypt = crypt($password_input_login);
                if($mysqli->query('INSERT INTO user (user_login, password_login) VALUES ("'.$user_input_login.'", "'.$password_input_login_crypt.'")')){
                    echo 'Vous êtes enregistré en tant que membre, vous pouvez vous connecter.';
                }
            }
        }
    }
    ?>