PHP MySQL шифрование пароля пользователя - PullRequest
0 голосов
/ 26 февраля 2012

Я использую следующий способ для шифрования паролей пользователя, который является AES Encryption.Я просто хочу знать, является ли это хорошей практикой или есть какой-то другой метод, которому я должен следовать.Потому что кто-то меня смутил, сказав: «Почему бы вам не использовать« СОЛЬ ». Могу ли я использовать шифрование SALT AES?

Ответы [ 4 ]

8 голосов
/ 26 февраля 2012
  • Я надеюсь, что ваш столбец базы данных не назван "passowrd".

За исключением этого.

Соль не метод шифрования, это случайный битвам необходимо добавить к каждому паролю перед хеширование для защиты от атак по словарю .

Вы должны не хранить пароли пользователей с использованием шифрования AES,который обратим.Вам не важно, какой пароль у пользователя , только то, что они его знают: так что не храните пароль в обратимой форме.

Вместо этого вы используете безопасный односторонний хеш, такой как SHA256 или даже bcrypt, пароля плюс некоторые случайные данные.Этот случайный мусор, "соль", генерируется для каждого пользователя и добавляется к паролю перед хэшированием.Затем он сохраняется в базе данных вместе с хешированными данными, чтобы вы могли позже сравнить пароли.

Таким образом, злоумышленник с так называемой радужной таблицей (большой словарь хэша)-поставки в виде открытого текста) не может прийти и увидеть «о, смотри, Джо Пользователь решил сделать свой пароль« пароль »!».Это также защищает от взлома всех паролей в вашей базе данных, поскольку, если каждая учетная запись имеет свою независимую соль, каждый пароль должен подвергаться независимой атаке.

1 голос
/ 26 февраля 2012

Вы не будете использовать «СОЛЬ» с AES, обычно это используется с SHA.

Большие детали и объяснения можно найти по адресу:

https://stackoverflow.com/a/4351749/1232478

0 голосов
/ 26 февраля 2012

С AES_ENCRYPT ключ, который вы используете, является солью.Я предпочитаю односторонние хеши, такие как MD5 или SHA, но многие любят дешифруемые пароли, которые вы храните.

0 голосов
/ 26 февраля 2012

Соль - это последовательность символов, добавленная к строке, которая должна быть хешированной , поэтому злоумышленнику сложнее получить исходную строку.

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

...