Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jenis/panjang kolom apa yang harus saya gunakan untuk menyimpan kata sandi hash Bcrypt dalam Database?

Format crypt modular untuk bcrypt terdiri dari

  • $2$ , $2a$ atau $2y$ mengidentifikasi algoritme dan format hashing
  • nilai dua digit yang menunjukkan parameter biaya, diikuti dengan $
  • nilai yang disandikan dengan basis 64 karakter sepanjang 53 karakter (mereka menggunakan alfabet . , / , 09 , AZ , az yang berbeda dengan Encoding Base 64 standar alfabet) terdiri dari:
    • 22 karakter garam (efektif hanya 128 bit dari 132 bit yang didekodekan)
    • 31 karakter keluaran terenkripsi (secara efektif hanya 184 bit dari 186 bit yang didekodekan)

Jadi panjang totalnya masing-masing adalah 59 atau 60 byte.

Saat Anda menggunakan format 2a, Anda memerlukan 60 byte. Dan dengan demikian untuk MySQL saya akan merekomendasikan untuk menggunakan CHAR(60) BINARY atau BINARY(60) (lihat _bin dan biner Koleksi untuk informasi tentang perbedaannya).

CHAR tidak biner aman dan kesetaraan tidak hanya bergantung pada nilai byte tetapi pada susunan yang sebenarnya; dalam kasus terburuk A diperlakukan sama dengan a . Lihat _bin dan binary Koleksi untuk informasi lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menginstal MySQL di CentOS 6

  2. Permintaan MySQL, MAX() + GROUP BY

  3. Melakukan perhitungan di MySQL vs PHP

  4. Praktik Terbaik mysqldump:Bagian 2 – Panduan Migrasi

  5. MySQL:Berikan **semua** hak istimewa pada database