[php5.2] gestione password() con mysql 5

ciao,

ho un script login che funzionava per php 4 e mysql 4.

adesso passando alle nuove versioni ho alcuni problemi con la gestione di nuovi utenti e in particolare con la funzione password().

in pratica quando aggiungo un nuovo utente, eseguo una query di inserimento

$sql   = "INSERT INTO tbl_user (user_name, user_password, user_regdate)
                VALUES ('$userName', PASSWORD('$password'), NOW())";

nel campo password di mysql, mi viene generata una hash a 40 digit.  Però quando provo a loggarmi non mi viene riconosciuta.

$sql = "SELECT user_id
              FROM tbl_user
            WHERE user_name = '$userName' AND user_password = '$password'";
      $result = dbQuery($sql);

mi pare di aver letto che la funzione password() non dev'essere usata con mysql 5, ma non ho capito bene come funziona.

Grazie

inviato 9 anni fa
iTek
iTek
1
X 0 X

Note

Calculates and returns a password string from the plaintext password str and returns a binary string, or NULL if the argument was NULL. This is the function that is used for encrypting MySQL passwords for storage in the Password column of the user grant table.

.....

The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead. Also see RFC 2195, section 2 (Challenge-Response Authentication Mechanism (CRAM)), for more information about handling passwords and authentication securely in your applications.

risposto 9 anni fa
LonelyWolf
X 0 X
For that purpose, consider MD5()

ho provato ad usare la funzione MD5(), ma non cambia, non lo accetta lo stesso

$sql   = "INSERT INTO tbl_agent (agent_user, agent_psw, agent_regdate)
                VALUES ('$userName', MD5('$password'), NOW())";

a proposito nel campo password, prima dell'hash c'è un asterisco, tipo

*FEBEAFEDC667BFABF658E527C254319B2623C507

cosa significa?

risposto 9 anni fa
iTek
iTek
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda