Witam czy ktoś mógłby mi wytłumaczyć w jaki sposób jest tu pobierane hasło
$prawie = http://www.php.net/md5($_POST['pass']); $pass = http://www.php.net/md5($prawie.'1m&3S'); if ($old[0] == $pass) { $_SESSION['admin'] = 'ok'; } else { http://www.php.net/echo"<center><font color='red'>Niepoprawne haslo sproboj ponownie</font>"; }
$pass = http://www.php.net/md5($prawie.'1m&3S');
To po kropce to tzw "sól" dodaje sie to do zwiekszenia bezpieczenstwa choc juz dawno md5() przestalo byc bezpieczne i powinno sie stosowac chocby password_hash().
Sól to tylko tobie znany coag znakow. Mozna dodac to np na poczatku lub koncu hasla.
Czyli najpierw jest generowane hasło w md5 a później jest dodawana ta sól i jeszcze raz generowana i jest właściwe hasło ?
Jedak nie czy możesz mi to wytłumaczyć ? będę wdzięczny
trochę pokombinowałem i nie wiem czy dobrze myślę
<?php $has = "1234"; $prawie = http://www.php.net/md5($has); $pass = http://www.php.net/md5($prawie.'1m&3S'); http://www.php.net/echo $pass;
Nie. Do pierwotnego ciągu coś doklejasz. Natomiast jeszcze raz. Md5 od dawna się nie używa i nie ma sensu się przy tym upierać. Użyj co najmniej bcrypt.
<?php $has = "1234"; $prawie = http://www.php.net/md5($has); $pass = http://www.php.net/md5($prawie.'1m&3S'); http://www.php.net/echo $pass;
<?php $logins = http://www.php.net/array( 'user' => http://www.php.net/array('hash' => 'ae092...', 'salt' => 'a7#(ad~I$...'), ); $user = http://www.php.net/strtolower(http://www.php.net/trim($_POST['user'])); $pass = $_POST['password']; if(http://www.php.net/isset($logins[$user]) && http://www.php.net/crypt($logins[$user]['salt'].$pass, 'SHA-256') == $logins[$user]['hash']) { // login poprawny } else { http://www.php.net/exit('blad'); }
Nie używamy crypt() do haseł tylko password_hash()
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)