Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв тип/дължина на колона трябва да използвам за съхраняване на хеширана парола на Bcrypt в база данни?

Модулният криптен формат за bcrypt се състои от

  • $2$ , $2a$ или $2y$ идентифициране на алгоритъм и формат за хеширане
  • двуцифрена стойност, обозначаваща параметъра на разходите, последвана от $
  • 53 знака, кодирана от база 64 стойност (те използват азбуката . , / , 09 , AZ , az това е различно от стандартното кодиране Base 64 азбука), състояща се от:
    • 22 знака сол (на практика само 128 бита от 132 декодирани бита)
    • 31 знака на криптиран изход (ефективно само 184 бита от 186 декодирани бита)

Така общата дължина е съответно 59 или 60 байта.

Тъй като използвате формат 2a, ще ви трябват 60 байта. И по този начин за MySQL ще препоръчам да използвате CHAR(60) BINARY или BINARY(60) (вижте _bin и двоичен Съпоставяния за информация относно разликата).

CHAR не е двоично безопасен и равенството не зависи само от стойността на байта, а от действителното съпоставяне; в най-лошия случай A се третира като равно на a . Вижте _bin и binary Колекции за повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция MySQL CRC32() – Примери

  2. Има ли нещо нередно с присъединяванията, които не използват ключовата дума JOIN в SQL или MySQL?

  3. Изпълнение на множество SQL заявки в един израз с PHP

  4. Приставката за удостоверяване „caching_sha2_password“ не се поддържа

  5. Вземете броя на записите за всички таблици в базата данни на MySQL