Ik ben redelijk nieuw met PHP. Ik weet wel ongeveer de standaard dingen en heb veel geleerd uit andere PHP gemaakte scripts die hier op deze site geplaatst zijn.
Echter kamp ik nu met een probleem. Als iemand zich registreert, word er via deze code een hash gemaakt:
$password = $data['pwd'];
for ($i = 0, $salt = ""; $i < 64; $i++) $salt .= chr(mt_rand(0, 255));
$hash = hash("sha512", $salt . $password, true);
Dit gaat tot zover goed, neem ik aan.
Er word namelijk zoiets aangemaakt in de MySQL database:
hash (binary(220))
d285adb401dd015becc6679d37826a5d4f030b779aae2d668a99632689ce80d8f8caa8bc32dc7589e3833543402e46a1e286aaebfc765d38ea5a3cb51929475300002e2e2e
salt (binary(220))
d2c976b9e706b1e01c12c042e9cc98d2f1149c3e3347f9068b683b8153ed9fd5bca836a569c89ce310198b04050faea26e799ac1dd2fa7b31ce2729861a44119000000000000002e2e2e
Ik vermoed dat dit tot zover klopt, echter weer ik niet wat de size moest zijn van de binary dus heb ik het 220 gemaakt.
Nu probeer ik in te loggen met de volgende code:
$password = $data['pwd'];
$result = mysql_query("SELECT `hash`,`salt` FROM users WHERE
$user_act") or die (mysql_error());
$num = mysql_num_rows($result);
if ( $num > 0 ) {
list($hash,$salt) = mysql_fetch_row($result);
if ($hash == hash("sha512", $salt . $password, true))
Maar hier gaat het fout. Als ik hier probeer in te loggen geeft die de error. (Invailed username/password).
Ik hoop dat iemand mij kan helpen hierbij, ik heb al veel dingen geprobeerd maar niks hielp..
Hartelijk bedankt!
Reno