Должен ли я создать столбец пароля как обычный varchar, а затем вставить вот так:
sha1($pass_string)
Или мне нужно сделать что-то еще при создании таблицы, чтобы убедиться, что поле пароля безопасно?
Спасибо!
Должен ли я создать столбец пароля как обычный varchar, а затем вставить вот так:
sha1($pass_string)
Или мне нужно сделать что-то еще при создании таблицы, чтобы убедиться, что поле пароля безопасно?
Спасибо!
Это нормальное поле varchar (40 символов), но если вы хотите установить его более безопасным, вы должны использовать соль.
http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/
Обновление:
ПРЕДУПРЕЖДЕНИЕ: Хэш-пароль без соли ДЕЙСТВИТЕЛЬНО СЛАБО! Вы никогда не должны использовать его!
Соляризация паролей - это хороший способ сделать это: солить листы
как советовали pst:
используя SHA-1, а соль - более наивный, но достаточно безопасный подход.
используя bcrypt:
это более безопасный подход:), потому что он использует скорость, чтобы сделать ее более безопасной, bfish - это хеш-функция, построенная вокруг метода шифрования blowfish. (Кажется, что существует также две рыбки и должна быть "современной" версией blowfish).
Это версия, использующая цепочку SHA-1, поэтому это промежуточное решение, но позволяющее устанавливать скорость в соответствии с вашими потребностями. Фактически скорость снижает вашу безопасность.
Вы также можете использовать функцию AES_ENCRYPT(), встроенную в mysql для большей безопасности. Ссылка здесь
Здесь также хорошо сказано: ссылка
Руководство содержит хорошее объяснение того, какой тип столбца использовать.
Большинство людей сохраняют хэш, как вы предложили. Это достаточно безопасно и просто, что делает его хорошим выбором.
Обратите внимание, что все хэши могут быть взломаны в конце концов, поэтому любой хэш лучше, чем ни один, и SHA достаточно силен.