Я храню пароли в базе данных SQL, использую PHP и планирую использовать bcrypt.
Я провел некоторое исследование, чтобы найти, какие типы и размер я должен использовать для хранения хэша и соли в моей базе данных.
На основе отличного ответа на этот вопрос, кажется, что bcrypt иногда выводит хэши разного размера, возможно, такие большие, как CHAR(76)
или BINARY(60)
. Но я не понимаю, когда и почему.
Этот вопрос содержит ссылку в котором говорится, что использование схемы $2$
дает 59 байт, а $2a$
— 60 байт. Однако сегодняшняя документация для php crypt рекомендует использовать $2y$
вместо $2a$
, по какой-то причине из-за к высоким битовым атакам или что-то в этом роде. В любом случае, я хотел бы использовать $2y$
, как это рекомендуется, однако нет указаний на размер выводимых файлов.
Каким должен быть размер моих полей в базе данных?
Кроме того, есть ли практическая разница между CHAR
и BINARY
в такого рода приложениях?