Piszę swój system logowania/rejestracji, jak na razie wszystko działa, ale natrafiłem na problem, i za bardzo nie wiem jak go rozwiązać. Mianowicie mam kod php w którym wysyłam dane do bazy danych i to wygląda tak:
<?php $sql_insert = "INSERT INTO users(username,password,que,ans,email,is_admin,is_active,regdate,regtime) VALUES ('$user',PASSWORD('$pass1'),'$que','$ans','$email',0,0,'$date','$time');"; ?>
myk jest z funkcją PASSWORD(), otóż wiem że ona liczy hash z podanego hasła.
Po przeprowadzonej rejestracji w bazie jest nazwa usera i jego hasło, co wygląda tak:
Kod
<BR>+----------+-----------------------------------------------+<BR><BR>| username | password |<BR><BR>+----------+-----------------------------------------------+<BR><BR>| username | *84aac12f54ab666ecfc2a83c676908c8bbc381b1 |<BR><BR>+----------+-----------------------------------------------+<BR><BR>
zhashowany tekst odpowiada hasłu '12345678'
problem w tym że hash uzyskany przy pomocy kalklulatora znalezionego na necie i funkcji sha1() z php są takie same, ale NIE takie same jak ten w zapisany w bazie danych.
Moje pytanie jest takie:
Jakie jest mechanizm hashowania przez mysql'a ? (znając ten mechanizm bede wiedział jak to zrobić w kodzie)
Pozdrawiam
ps
Mam pewnien pomysł jak to zmotać. Po wpisaniu prawidłowego hasła podczas rejestr
cji zostanie ono zhashowane przez sha1,
i w postaci hasha zostanie wysłane do bazy. Wszystko bez użycia funkcji PASSWORD
). Na razie tego nie stosują, gdyż chcę się dowiedzieć co funkcja PASSWORD() robi z hasłem .