Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282

    problema con password_verify

    Ciao a tutti,
    in una tabella memorizzo una password con la seguente istruzione
    $password_hash = password_hash($dupwd, PASSWORD_BCRYPT);


    Quando accedo alla tabella però non mi riconosce la password.
    Riporto lo script di prova che utilizzo:


    $id = mysqli_real_escape_string($conn, $_GET['id']);
    $pwd = trim(mysqli_real_escape_string($conn, $_GET['pw']));


    $sql = "SELECT * FROM datiuten WHERE ducod = " . $id ;
    $result = mysqli_query($conn ,$sql ) or die('Errore nella query');


    //
    while($row=mysqli_fetch_array($result)){
    $password_hash = $row['aupwd'];
    }


    // echo $password_hash;


    if (password_verify($pwd, $password_hash))
    {
    $csv_output = 'Accesso consentito' ;
    } else {
    $csv_output = 'La password inserita non è corretta' ;
    }


    echo $csv_output;
    exit;


    Ovviamente ho verificato che $password_hash è letta correttamente dal db.
    Il campo in cui è memorizzata è un varchar(255).


    Qualcuno mi saprebbe dire in cosa sbaglio?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    Qualcuno è in grado di aiutarmi?
    Grazie

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Per come hai scritto il codice, mi sembra corretto...
    Io verificherei che:
    - $pwd sia ciò che ti aspetti
    - $id e $pwd siano effettivamente correlati
    - e soprattutto se salvi correttamente nel database la password ($dupwd è corretta?)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    Ho fatto tutti i controlli ma non ne vengo a capo...
    Ho registrato un record con codice =24 e password = prova
    Sulla tabella dupwd=$2y$10$16c0NreM8C3R/FKjns1gVOE4LfC2n/E4NsF6ifoj0YZHO5FzrJWki
    Nello script dopo la while ho testato che ha trovato il record
    Faccio una echo di $pwd=prova
    Faccio una echo di $hash=$2y$10$16c0NreM8C3R/FKjns1gVOE4LfC2n/E4NsF6ifoj0YZHO5FzrJWki
    Ma poi password_verify($pwd,$hash) mi da esito negativo....
    Non so più cosa provare...

    Riporto l'ultimo script che ho provato
    //
    $id = mysqli_real_escape_string($conn, $_GET['id']);
    $pwd = trim(mysqli_real_escape_string($conn, $_GET['pw']));
    //
    $sql = "SELECT * FROM datiuten WHERE ducod = " . $id . " AND duabi=1 ";
    $result = mysqli_query($conn ,$sql ) or die('Errore nella query');
    //
    // SCORRO ELENCO
    while($row=mysqli_fetch_array($result)){
    $codice = $row['ducod'];
    $tipo = $row['dutip'];
    $hash = $row['dupwd'];
    }
    //
    if (password_verify($pwd, $hash))
    {
    $csv_output .= $codice . ",";
    $csv_output .= $tipo . ",";
    $csv_output .= 'Accesso consentito' . ",";
    } else {
    $csv_output .= 'La password inserita non è corretta' . ",";
    }
    $csv_output .= "\n";
    echo $csv_output;
    exit;

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Io controllerei il salvataggio della password sul db. Magari posta il codice.
    Poi invierai id e password via POST e non GET, sia mai che viene codificata per url (oltre ad un fatto di sicurezza)

    Già che ci sei prova una cosa banale:

    Codice PHP:
    $hashed_pw password_hash('prova'PASSWORD_BCRYPT);
    if(
    password_verify('prova'$hashed_pw)){
        echo 
    "OK";


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.