Якщо ви використовуєте PHP password_hash()
з PASSWORD_DEFAULT
алгоритмом для генерування хеш-файлів bcrypt (я вважаю, що це великий відсоток людей, які читають це запитання), не забудьте пам’ятати, що в майбутньому password_hash()
може використовуватися інший алгоритм як за замовчуванням, і це може тому впливають на довжину хешу (але це може бути не обов'язково довше).
З сторінки керівництва:
Зауважте, що ця константа призначена для того, щоб змінюватись з часом, оскільки до PHP додаються нові і сильніші алгоритми. З цієї причини тривалість результату від використання цього ідентифікатора може змінюватися з часом. Тому
рекомендується зберігати результат у стовпці бази даних, яка може розширюватися за рамки 60 символів (255 символів було б хорошим вибором).
Використовуючи bcrypt, навіть якщо у вас є 1 мільярд користувачів (тобто ви зараз змагаєтесь з facebook) для зберігання 255 байтових хешей паролів, це буде лише ~ 255 ГБ даних - приблизно розміром невеликого жорсткого диска SSD. Надзвичайно малоймовірно, що зберігання хеша пароля буде вузьким місцем у вашій програмі. Однак, з випадковою можливістю, що місце для зберігання дійсно є проблемою з якихось причин, ви можете PASSWORD_BCRYPT
змусити password_hash()
використовувати bcrypt, навіть якщо це не за замовчуванням. Просто не забудьте бути в курсі будь-яких уразливостей, виявлених у bcrypt, та переглядайте нотатки до випуску щоразу, коли виходить нова версія PHP. Якщо алгоритм за замовчуванням колись змінюється, було б добре переглянути, чому і прийняти обгрунтоване рішення, використовувати новий алгоритм чи ні.