Складові частини хеш-рядки bcrypt

Складові частини хеш-рядки bcrypt

Хороший спосіб зберігання даних для аутентифікації - хеш-рядки bcrypt. У PHP це реалізується за допомогою crypt з алгоритмом blowfish. У більш пізніх версіях PHP - за допомогою password_hash. В Yii для цього є Security :: generatePaswordHash (). Виглядає рядок на виході ось так:

$ 2y $ 13 $ YUUgrko03UmNU / fe6gNcO. Hka4lrdRlkq0iJ5d4bv4fK.sKS.6jXu

Довжина в разі пароля завжди 60 символів.

  • 2y - версія алгоритму bcrypt. Ми використовуємо blowfish, так що в нових версіях PHP повинна бути завжди 2y.
  • 13 - cost. Вартість обчислень. 2 ^ 13 ітерацій функції формування ключа.
  • Час, що залишився - конкатенірованние сіль і хеш, закодовані через base64 з трохи нестандартним набором символів. Перші 22 символу - 16 байт солі. Час, що залишився - хеш.

При порівнянні пароля bcrypt дістає версію алгоритму, cost і сіль з хеш-рядки збереженого пароля. Далі, використовуючи їх, обчислює хеш нового пароля і порівнює з збереженим хешем.

Так і має бути.

Все вірно, щоб Брут було дорогою операцією навіть якщо буде витік паролів.

Брут буде дорого власнику сайту, адже на таких простих і важких операція дуже легко повісити сервак

Складові частини хеш-рядки bcrypt

цікаве

Складові частини хеш-рядки bcrypt

Складові частини хеш-рядки bcrypt

Складові частини хеш-рядки bcrypt

Складові частини хеш-рядки bcrypt

Схожі статті