Cách mã hóa dữ liệu bảng trong mysql

Mike Benshoof2022-09-20T08. 01. 35-04. 00

Tác giả Mike Benshoof Thông tin chi tiết về DBA, MySQL, Phần mềm Percona, Bảo mật mã hóa, MySQL, mysql và các biến thể

Trong một
bài đăng được viết vào đầu năm nay – Máy chủ Percona cho các lựa chọn và tùy chọn mã hóa MySQL – < . Là một chủ đề phức tạp như vậy, bài đăng đó nhằm làm rõ và làm nổi bật các khía cạnh khác nhau của “mã hóa” ở các cấp độ khác nhau. Gần đây tôi lại thấy chủ đề này xuất hiện, nhưng cụ thể là xung quanh mã hóa cấp độ cột và các tùy chọn khác nhau nên tôi muốn đề cập chi tiết hơn về vấn đề này.  I discussed some of the options around encryption in MySQL.  Being such a complex topic, that post was meant to clarify and highlight various aspects of “encryption” at different levels.  I recently had this topic come up again, but specifically around column-level encryption and various options so I wanted to touch on this in more detail.

Kể từ bản phát hành hiện tại của Máy chủ Percona dành cho MySQL, không có cách tích hợp nào để xác định một cột duy nhất là được mã hóa. Lý tưởng nhất là có thể có một số siêu dữ liệu được chuyển trong câu lệnh tạo và điều này sẽ tự động xảy ra, chẳng hạn như điều này

TẠO BẢNG pii_data [

user_id int KHÓA CHÍNH không dấu,

super_secret  varchar[255] ĐƯỢC MÃ HÓA,

… ] ĐỘNG CƠ=InnoDB

Rất tiếc, tùy chọn này không khả dụng và chúng tôi cần thực hiện một số thao tác dữ liệu vào hoặc trước thời điểm đọc/ghi

Chức năng mã hóa MySQL tích hợp

Một trong những cách tiếp cận phổ biến nhất là sử dụng các chức năng mã hóa MySQL tích hợp được mô tả tại đây. https. // nhà phát triển. mysql. com/doc/refman/8. 0/vi/hàm mã hóa. html. Các luồng tiêu chuẩn trông giống như thế này.

CHÈN VÀO mytable [id, secret_data]  VALUES [1, TO_BASE64[AES_ENCRYPT[“dữ liệu cực kỳ bí mật”, “khóa của tôi”]]];

Chúng ta có thể mã hóa dữ liệu trong MySQL không?

Để kích hoạt mã hóa cho vùng bảng hệ thống mysql, hãy chỉ định tên vùng bảng và tùy chọn ENCRYPTION trong câu lệnh ALTER TABLESPACE . mysql> THAY ĐỔI TABLESPACE mysql ENCRYPTION = 'Y'; .

Làm cách nào để mã hóa cột và bảng trong MySQL?

Mã hóa cấp độ cột trong MySQL .
TẠO BẢNG pii_data [ user_id int unsigned PRIMARY KEY,.
CHÈN VÀO mytable [id, secret_data] GIÁ TRỊ [1, TO_BASE64[AES_ENCRYPT[“dữ liệu siêu bí mật”, “khóa của tôi”]]]; .
plaintextData = “nội dung siêu bí mật”.
CHỌN secretData, key TỪ mytable;

Làm cách nào để mã hóa một trường trong MySQL?

Khi mã hóa một cột, bạn có thể sử dụng hàm ENCRYPT, hàm AES_ ENCRYPT, hàm DES_ENCRYPT cũ hơn hoặc các thuật toán nén hoặc mã hóa . Nếu bạn muốn sử dụng phương pháp này để mã hóa và giải mã, tôi khuyên bạn nên sử dụng AES_ENCRYPT và AES_DECRYPT.

Làm cách nào để mã hóa mật khẩu trong cơ sở dữ liệu MySQL?

Máy chủ MySQL sử dụng chức năng MẬT KHẨU để mã hóa mật khẩu MySQL để lưu trữ trong cột Mật khẩu của bảng cấp người dùng. Giá trị do hàm MẬT KHẨU trả về là một chuỗi được băm hoặc NULL nếu đối số là NULL. Hàm MẬT KHẨU nhận một tham số là chuỗi cần mã hóa.

Chủ Đề