webForumDet fria alternativet

Hämta med PASSWORD från databasen

PHP

4 svar · 342 visningar · startad av Cmart

Medlem sedan feb. 200269 inlägg
Frågan#1

Varför fungerar inte detta?

$query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";

Den kan liksom inte dekryptera lösenordet som finns i databasen. Lösenordet är krypterat med: UPDATE `tbl_users` SET `password` = PASSWORD( 'kalle' )

Medlem sedan okt. 20001 285 inlägg
#2

hmm..

<?php
// om du har med krypterat med md5() så kollar man så här
$query = "SELECT user_id, first_name FROM users WHERE username = '$u' AND password = '".md5($p)."';

// För dig kanske.. 
$query = "SELECT user_id, first_name FROM users WHERE username = '$u' AND password = PASSWORD($p)";
?>
Medlem sedan aug. 2001145 inlägg
#3

Om du har genererat lösenordet i mysql 4 och sen använder password() i mysql5 så får du inte samma hash eftersom den nya är 41 bytes och den gamla 16 eller nått liknande.

Kan vara nått sådant kanske?
Prova att:

select * from users where password = OLD_PASSWORD(fält);

Kanske funkar?

Medlem sedan feb. 200269 inlägg
#4

Det var som så att jag hade satt fältet med password till VARCHAR(16) vilket inte räckte för att få plats med krypteringen enligt nya formen.

Medlem sedan aug. 20002 975 inlägg
#5

Notera också vad de skriver i dokumentationen:

Note: 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.

http://dev.mysql.com/doc/refman/4.1/en/encryption-functions.html

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)