Соление - порядок шагов - PullRequest
0 голосов
/ 04 июля 2011

При введении пароля правильный путь (или самый эффективный способ)?

A. Сначала хешируйте пароль, а затем хешите пароль с помощью соли:

$password = "passwd";

$salt = "s0merndslt";

$password = sha1($password);

$salty = sha1($password.$salt);

B. Возьмите пароль и соль и объедините их так:

$password = "passwd";

$salt = "s0merndslt";

$salty = sha1($password.$salt);

Приношу свои извинения, если об этом уже спрашивали, но я не смог найти ответ на эту специфическую часть соления на SO.

1 Ответ

2 голосов
/ 04 июля 2011

На самом деле, в любом случае.

Тем не менее, ваш пример № 1 обеспечивает компромисс по времени, который (немного) замедлит поиск паролей методом перебора.

С появлением графических процессоров просто засолить пароли недостаточно . Поддерживаемый GPU инструмент для перебора паролей, когда ему предоставляется набор паролей для поиска, может создавать короткие пароли за считанные минуты (или даже секунды).

Вот почему существуют такие инструменты или алгоритмы, как bcrypt или PBKDF # 2: они многократно повторяют операцию хеширования, создавая большую рабочую нагрузку, что делает поиск паролей из хеша «неосуществимым» на обычном оборудовании.

Если сомневаетесь, не используйте собственное решение для хэширования паролей! Используйте bcrypt или PBKDF # 2.

...