Как создать таблицы с полями пароля в mysql?

Должен ли я создать столбец пароля как обычный varchar, а затем вставить вот так:

sha1($pass_string)

Или мне нужно сделать что-то еще при создании таблицы, чтобы убедиться, что поле пароля безопасно?

Спасибо!

Ответ 1

Это нормальное поле varchar (40 символов), но если вы хотите установить его более безопасным, вы должны использовать соль.

http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/

Обновление:

ПРЕДУПРЕЖДЕНИЕ: Хэш-пароль без соли ДЕЙСТВИТЕЛЬНО СЛАБО! Вы никогда не должны использовать его!

Соляризация паролей - это хороший способ сделать это: солить листы

как советовали pst:

  • используя SHA-1, а соль - более наивный, но достаточно безопасный подход.

  • используя bcrypt:

это более безопасный подход:), потому что он использует скорость, чтобы сделать ее более безопасной, bfish - это хеш-функция, построенная вокруг метода шифрования blowfish. (Кажется, что существует также две рыбки и должна быть "современной" версией blowfish).

Это версия, использующая цепочку SHA-1, поэтому это промежуточное решение, но позволяющее устанавливать скорость в соответствии с вашими потребностями. Фактически скорость снижает вашу безопасность.

Ответ 2

Вы также можете использовать функцию AES_ENCRYPT(), встроенную в mysql для большей безопасности. Ссылка здесь

Здесь также хорошо сказано: ссылка

Ответ 3

Руководство содержит хорошее объяснение того, какой тип столбца использовать.

Ответ 4

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

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