Пожалуйста, прокомментируйте этот метод хранения пароля пользователя ... - PullRequest
2 голосов
/ 17 апреля 2011
$storePassword = md5Hash($salt, $userActuallyPassword);

Когда пользователь назначает пароль, я сгенерирую соль, которая представляет собой случайную строку из десяти цифр, и я использую md5 с userActuallyPassword, и я сохраняю salt и storePassword, в пределах которого пользователь фактически вводит пароль. хороший способ сделать это? Любой комментарий по этому поводу?

Ответы [ 3 ]

5 голосов
/ 17 апреля 2011

Это почти хорошо.

Однако вы не должны использовать MD5, и вы должны использовать не-ASCII соль.

Вместо этого используйте bcrypt

1 голос
/ 17 апреля 2011

почти правильно:

$storePassword = $salt . md5Hash($salt, $userActuallyPassword);

и вместо md5 лучше использовать SHA256 или BCrypt Hash.
Кроме того, десятизначная случайная строка не имеет очень большой энтропии, которую можно улучшить, используя 128 случайных битов вместо цифр.

1 голос
/ 17 апреля 2011

Попробуйте использовать более тщательно изученный метод, такой как PBKDF2 .Вы по-прежнему будете хранить хэш и соль, и вы можете выбрать свой собственный алгоритм хэширования, но вы позаботитесь о атаках по словарю, радужных атаках и множестве других проблем.Хорошую реализацию вы можете найти в комментариях к функции hash_hmac () .

...