Information Security
PHP
Comments 13
+1
То есть теперь надо не только проверить пароль, но еще и проверить, а не изменился ли алгоритм.
Не совсем понятно, что будет, если изменится PASSWORD_DEFAULT. password_verify($password, $hash) вернет FALSE? А что вернет password_needs_rehash($hash, PASSWORD_DEFAULT)?
0
Ни разу не писал на PHP, но почему-то кажется, исходя из наличия метода password_get_info(), что в $hash хранится алгоритм, и эти сведения используются в password_verify
0
password_verify — не зависит от PASSWORD_DEFAULT, так как алгоритм по которому получен хеш вместе с параметрами храниться в самой переменной $hash.

Поэтому если password_verify вернул FALSE, то значит пароль не верный. А если пароль правильный, тогда можно сделать проверку не обновился ли алгоритм password_needs_rehash, и тогда сохранить новый хеш.
-5
<?php
$hash = md5($password . $salt); // works, but dangerous

А если так:
$hash = md5($password .md5($salt));
$hash = md5(md5($password) .md5($salt));
???
-4
Специально проверил:
<?php
$password 	= 'vnkG767dfd';
$salt 		= 'vnsiRfdR45';

$hash1 = md5($password . $salt); //43a47c25ddeb356f4f01889a06bb01ff
$hash2 = md5($password .md5($salt));//ac34660393373c58cc33d295c2b8202b
$hash3 = md5(md5($password) .md5($salt));//67ba6ba0ec1fa56c9857ccf75a462ce3

Абсолютно не тоже самое…
0
С точки зрения безопасности — одинаково легко перестроить радужную таблицу по любому предложенному вами алгоритму.
+3
Я читал вашу первую статью. Из нее я не смог понять почему так делать бессмысленно(не зря я вопросы в конце поставил). Вот тут нашел полезный материал, теперь стало все более-менее понятно. Так что, да. Так как я спрашивал — лучше не делать.
0
Использующие phpldapadmin с этой функцией уже немного познакомились, благо связанная с этим проблема легко исправима.
Only those users with full accounts are able to leave comments., please.