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

Độ dài tôi phải chỉ định cho chuỗi được mã hóa bằng AES-256-CBC trong cơ sở dữ liệu là bao nhiêu?

Kích thước khối của AES là 16 byte, vì vậy bạn sẽ cần

  • kích thước đầu vào của bạn, được làm tròn đến bội số gần nhất của 16
  • cộng với, nếu đầu vào đã là bội số của 16, một kích thước khối cho phần đệm PKCS # 5
  • cộng với 16 byte cho IV

Lưu ý rằng điều này không nhất thiết phải áp dụng cho các chế độ mật mã khác.

Vì vậy, đối với 20 byte đầu vào, bạn sẽ cần tổng cộng 48 byte. Tuy nhiên , bạn cũng đang mã hóa kết quả base64, yêu cầu thêm ít nhất 33% dung lượng (tức là bạn nên lưu trữ các byte thô nếu bạn quan tâm đến dung lượng).

Bạn phải luôn nối trước khi mã hóa, nếu không, bạn thường lãng phí không gian với nhiều chuỗi byte đệm. Nếu đầu vào của bạn dài 20 byte, việc mã hóa bản mã 32 byte sẽ tạo ra 44 byte và mã hóa IV tạo ra 24 byte (cả hai đều cần đệm). Kết hợp trước khi mã hóa chỉ tạo ra 64 byte.

Việc ghép nối trước khi mã hóa cũng không yêu cầu dấu phân cách vì độ dài của IV đã được biết trước.

Các mật mã 1 AEAD, chẳng hạn như GCM, thường được ưu tiên hơn CBC, nhưng rõ ràng là yêu cầu nhiều không gian hơn để lưu trữ băm xác thực.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng Regexp trong MySQL Replace Commands?

  2. Công cụ đồng bộ hóa MySQL miễn phí

  3. Chọn các khóa học hoàn toàn hài lòng theo danh sách các điều kiện tiên quyết nhất định

  4. Cách hàm LOAD_FILE () hoạt động trong MySQL

  5. Kết quả in Python và MySQL