Mã hóa
Field: Mã hóaProfessional Edition+Giới thiệu
Một số dữ liệu nghiệp vụ riêng tư, chẳng hạn như số điện thoại, địa chỉ email, số thẻ của khách hàng, v.v., có thể được mã hóa. Sau khi mã hóa, dữ liệu sẽ được lưu trữ trong cơ sở dữ liệu dưới dạng bản mã.

Phương thức mã hóa
Plugin sẽ tự động tạo một应用密钥, khóa này được lưu trong thư mục /storage/apps/main/encryption-field-keys.
Tên tệp 应用密钥 là ID khóa, phần mở rộng là .key. Không được tùy ý sửa đổi tên tệp.
Vui lòng bảo quản应用密钥 tệp cẩn thận. Nếu làm mất应用密钥 tệp, dữ liệu đã mã hóa sẽ không thể giải mã.
/storage/apps/${子应用name}/encryption-field-keysNguyên lý hoạt động
Sử dụng phương thức mã hóa phong bì

Quy trình tạo khóa
- Khi tạo trường mã hóa lần đầu tiên, hệ thống sẽ tự động tạo một
应用密钥32 bit và lưu vào thư mục lưu trữ mặc định dưới dạng mã hóa base64. - Mỗi khi tạo một trường mã hóa mới, hệ thống sẽ tạo một
字段密钥32 bit ngẫu nhiên cho trường đó, sau đó sử dụng应用密钥và字段加密向量16 bit được tạo ngẫu nhiên để mã hóa nó (thuật toán mã hóaAES), rồi lưu vào bảngfields, trong trườngoptions.
Quy trình mã hóa trường
- Mỗi khi ghi dữ liệu vào trường mã hóa, trước tiên hệ thống sẽ lấy từ bảng
fields, trườngoptions, các字段密钥và字段加密向量đã mã hóa. - Sử dụng
应用密钥và字段加密向量để giải mã字段密钥đã mã hóa, sau đó sử dụng字段密钥và数据加密向量16 bit được tạo ngẫu nhiên để mã hóa dữ liệu (thuật toán mã hóaAES). - Sử dụng
字段密钥sau khi giải mã để ký dữ liệu (thuật toán bămHMAC-SHA256), rồi chuyển đổi thành chuỗi bằng mã hóa base64 (数据签名được tạo ra sẽ được dùng để truy vấn dữ liệu sau này). - Nối nhị phân
数据加密向量16 bit và数据密文đã mã hóa, rồi chuyển đổi thành chuỗi bằng mã hóa base64. - Nối chuỗi mã hóa base64 của
数据签名và chuỗi mã hóa base64 của数据密文sau khi nối, phân tách bằng '.'. - Lưu chuỗi sau cùng vào cơ sở dữ liệu.
Biến môi trường
Nếu muốn chỉ định应用密钥, có thể sử dụng biến môi trườngENCRYPTION_FIELD_KEY_PATH. Plugin sẽ tải tệp trong đường dẫn đó làm应用密钥.
应用密钥Yêu cầu về định dạng tệp:
- Phần mở rộng của tệp phải là
.key. - Tên tệp sẽ được dùng làm ID khóa; nên sử dụng UUID để đảm bảo tính duy nhất.
- Nội dung tệp là dữ liệu nhị phân 32 bit được mã hóa base64.
Cấu hình trường

Ảnh hưởng của việc lọc sau khi mã hóa
Các trường đã mã hóa chỉ hỗ trợ: bằng, khác, tồn tại, không tồn tại.

Phương thức lọc dữ liệu:
- Lấy
字段密钥của trường mã hóa, sử dụng应用密钥để giải mã字段密钥. - Sử dụng
字段密钥để ký văn bản tìm kiếm do người dùng nhập (thuật toán bămHMAC-SHA256). - Dùng văn bản tìm kiếm đã ký nối với
.làm dấu phân cách, rồi thực hiện tìm kiếm khớp tiền tố trên trường mã hóa trong cơ sở dữ liệu.
Xoay vòng khóa
Trước khi sử dụng lệnh xoay vòng khóanocobase key-rotation, hãy xác nhận rằng ứng dụng đã tải plugin này.
Sau khi di chuyển ứng dụng sang môi trường mới, nếu không muốn tiếp tục sử dụng khóa giống với môi trường cũ, có thể sử dụng lệnhnocobase key-rotation để thay thế应用密钥.
Để chạy lệnh xoay vòng khóa, cần chỉ định khóa ứng dụng của môi trường cũ. Sau khi chạy lệnh, khóa ứng dụng mới sẽ được tạo và thay thế khóa cũ. Khóa ứng dụng mới sẽ được lưu vào thư mục lưu trữ mặc định dưới dạng mã hóa base64.
Nếu thay thế ứng dụng con应用密钥, cần thêm tham số--app-name để chỉ địnhname của ứng dụng con.

