Giao diện
Câu hỏi thường gặp
Mất encryption key thì có khôi phục được dữ liệu không?
Không. AES là mã hóa đối xứng — mất key đồng nghĩa mất dữ liệu. Hãy backup key cẩn thận và sử dụng key rotation định kỳ.
Khác biệt giữa Encryption và Mask?
| Encryption | Mask | |
|---|---|---|
| Dữ liệu trong DB | Ciphertext (mã hóa) | Plaintext (nguyên gốc) |
| Bảo mật | Thực sự — không đọc được khi truy cập trực tiếp DB | Chỉ che trên UI |
| Hiệu năng | Tốn thêm CPU cho encrypt/decrypt | Không ảnh hưởng |
| Tìm kiếm | Chỉ equality ($encryptionEq) | Hỗ trợ đầy đủ |
Có thể tìm kiếm LIKE trên field encryption không?
Không. Do dữ liệu được mã hóa, chỉ hỗ trợ so sánh chính xác thông qua $encryptionEq và $encryptionNe. Tìm kiếm mờ (LIKE, contains) không khả thi trên ciphertext.
Field encryption có chậm hơn field thường không?
Có nhưng không đáng kể với lượng dữ liệu vừa phải. Mỗi lần đọc/ghi đều qua thêm bước encrypt/decrypt. Với bảng lớn (hàng triệu bản ghi), nên đánh giá hiệu năng trước khi dùng rộng rãi.
Key rotation mất bao lâu?
Phụ thuộc số lượng bản ghi. Quy trình decrypt + re-encrypt toàn bộ dữ liệu, nên bảng có 100k bản ghi sẽ mất vài phút. Nên chạy vào giờ thấp điểm.
Có thể dùng encryption key chung cho nhiều field không?
Có thể nhưng không khuyến khích. Per-field key giúp giới hạn rủi ro — nếu một key bị lộ, chỉ field đó bị ảnh hưởng.
EncryptionError hiển thị khi nào?
Khi decrypt thất bại — thường do:
- Key đã bị thay đổi mà chưa chạy key rotation.
- Ciphertext bị corrupt (chỉnh sửa trực tiếp trong DB).
- Sai field metadata sau khi import/restore database.
Có hỗ trợ thuật toán mã hóa khác ngoài AES không?
Hiện tại plugin chỉ hỗ trợ AES. Nếu cần thuật toán khác, phải extend plugin.