Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi nên sử dụng loại / độ dài cột nào để lưu trữ mật khẩu được băm Bcrypt trong Cơ sở dữ liệu?

Định dạng mã mô-đun cho bcrypt bao gồm

  • $ 2 $ , $ 2a $ hoặc $ 2y $ xác định định dạng và thuật toán băm
  • một giá trị hai chữ số biểu thị thông số chi phí, theo sau là $
  • giá trị được mã hóa cơ sở 64 dài 53 ký tự (chúng sử dụng bảng chữ cái . , / , 0 - 9 , A - Z , a - z khác với Mã hóa cơ sở 64 tiêu chuẩn bảng chữ cái) bao gồm:
    • 22 ký tự của muối (hiệu quả chỉ là 128 bit trong số 132 bit được giải mã)
    • 31 ký tự của đầu ra được mã hóa (chỉ 184 bit trong số 186 bit được giải mã)

Do đó, tổng độ dài tương ứng là 59 hoặc 60 byte.

Khi sử dụng định dạng 2a, bạn sẽ cần 60 byte. Và do đó đối với MySQL, tôi khuyên bạn nên sử dụng mã <> CHAR (60) BINARY hoặc BINARY (60) (xem _bin nhị phân Ảnh ghép để biết thông tin về sự khác biệt).

CHAR không phải là nhị phân an toàn và sự bình đẳng không chỉ phụ thuộc vào giá trị byte mà là đối chiếu thực tế; trong trường hợp xấu nhất A được coi như bằng a . Xem _bin binary Ảnh ghép để biết thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khối lượng công việc kết hợp cơ sở dữ liệu OLTP / Analytics:Sao chép dữ liệu MySQL sang ClickHouse

  2. mysql_fetch_array () mong đợi tham số 1 là vấn đề tài nguyên

  3. Cách chuyển đổi datetime sang UTC trong MySQL

  4. PHP Lỗi nghiêm trọng:Không tìm thấy lớp 'PDO'

  5. SQL - NẾU TỒN TẠI CẬP NHẬT ELSE INSERT INTO