Chức năng mã hóa Mysql
Hàm MySQL ENCRYPT() được sử dụng để mã hóa một chuỗi bằng UNIX crypt() và trả về giá trị được mã hóa của chuỗi. Hàm này sử dụng muối trong quá trình mã hóa và muối phải dài ít nhất 2 ký tự. Nếu muối không được cung cấp, hàm này sẽ sử dụng một giá trị ngẫu nhiên là muối. Trong trường hợp đặc biệt, nó trả về như sau Show
cú phápThông số
Máy chủ Percona cho MySQL 8. 0. 28-20 thêm chức năng mã hóa và các biến để quản lý phạm vi mã hóa. Các hàm có thể lấy một đối số thuật toán. Mã hóa chuyển đổi bản rõ thành bản mã bằng khóa và thuật toán mã hóa Bạn cũng có thể sử dụng các chức năng do người dùng định nghĩa với các khóa định dạng PEM do tiện ích OpenSSL tạo bên ngoài Thông báo sử dụng văn bản gốc và tạo ra giá trị băm. Giá trị băm này có thể xác minh xem bản rõ có bị sửa đổi hay không. Bạn cũng có thể ký tên hoặc xác minh trên bản tóm tắt để đảm bảo rằng văn bản gốc không bị sửa đổi. Bạn không thể giải mã văn bản gốc từ giá trị băm Khi chọn độ dài khóa, hãy xem xét những điều sau
Bảng và các phần sau đây mô tả các chức năng. Ví dụ, xem chức năng ví dụ Tên chức năngBảng sau đây mô tả các biến Ngưỡng mã hóa có thể được sử dụng để đặt giá trị tối đa cho độ dài khóa dựa trên loại mã hóa Tên biếnCài đặt thành phần_encryption_udfSử dụng Câu lệnh thành phần cài đặt để thêm thành phần component_encryption_udf. Các hàm và biến có sẵn. Các hàm do người dùng xác định và các biến Ngưỡng mã hóa được đăng ký tự động. Không có yêu cầu để gọi Cần có đặc quyền 0. Để đăng ký thành phần, thao tác thêm một hàng vào bảng nàySau đây là một ví dụ về lệnh cài đặt
Ghi chú Nếu bạn đang Biên dịch Máy chủ Percona cho MySQL từ Nguồn, thì thành phần Mã hóa UDF được tạo theo mặc định khi Máy chủ Percona cho MySQL được tạo. Chỉ định tùy chọn cmake 1 để loại trừ nóCác chức năng do người dùng xác định được mô tảbất đối xứng_decrypt(thuật toán, crypt_str, key_str)Giải mã một chuỗi được mã hóa bằng thuật toán và chuỗi khóa trả lạiMột bản rõ dưới dạng một chuỗi Thông sốSau đây là các tham số của hàm
bất đối xứng_derive(pub_key_str, priv_key_str)Tạo khóa đối xứng bằng cách sử dụng khóa chung được tạo ở một bên và khóa riêng được tạo ở bên kia đầu ra bất đối xứngKhóa dưới dạng chuỗi nhị phân tham số asymmetric_derive 2 phải là khóa công khai ở định dạng PEM và được tạo bằng thuật toán Diffie-Hellman (DH) 3 phải là khóa riêng ở định dạng PEM và được tạo bằng thuật toán Diffie-Hellman (DH)mã hóa bất đối xứng (thuật toán, chuỗi, keystr)Mã hóa một chuỗi bằng thuật toán và chuỗi khóa đầu ra asymmetric_encryptBản mã dưới dạng chuỗi nhị phân tham số asymmetric_encryptCác thông số như sau
asymmetric_sign(thuật toán, digest_str, priv_key_str, digest_type)Ký chuỗi thông báo bằng chuỗi khóa riêng đầu ra asymmetric_signChữ ký là một chuỗi nhị phân tham số asymmetric_signCác thông số như sau
asymmetric_verify(thuật toán, digest_str, sig_str, pub_key_str, digest_type)Xác minh xem chuỗi chữ ký có khớp với chuỗi thông báo hay không đầu ra asymmetric_verifyMột 4 (thành công) hoặc một 5 (thất bại)tham số asymmetric_verifyCác thông số như sau
create_asymmetric_priv_key(thuật toán, (key_len. dh_tham số))Tạo khóa riêng bằng thuật toán đã cho và độ dài khóa cho các tham số RSA hoặc DSA hoặc Diffie-Hellman cho DH. Đối với RSA hoặc DSA, nếu cần, hãy thực thi 6 để chấm dứt quá trình tạo khóa lâu dài. Tạo khóa DH từ các tham số hiện có là một thao tác nhanh. Do đó, không có ý nghĩa gì khi chấm dứt hoạt động đó với 7đầu ra create_asymmetric_priv_keyKhóa dưới dạng chuỗi ở định dạng PEM tham số create_asymmetric_priv_keyCác thông số như sau
create_asymmetric_pub_key(thuật toán, priv_key_str)Lấy khóa công khai từ khóa riêng đã cho bằng thuật toán đã cho đầu ra create_asymmetric_pub_keyKhóa dưới dạng chuỗi ở định dạng PEM tham số create_asymmetric_pub_keyCác thông số như sau
tạo_dh_tham số (key_len)Tạo các tham số để tạo cặp khóa riêng/công khai Diffie-Hellman (DH). Nếu cần, hãy thực thi 6 để chấm dứt việc tạo các tham số lâu dàiViệc tạo các tham số DH có thể mất nhiều thời gian hơn so với việc tạo các khóa RSA hoặc khóa DSA. OpenSSL xác định giới hạn độ dài tham số. Để thay đổi độ dài tham số tối đa, hãy sử dụng mã hóa_udf. dh_bits_threshold đầu ra create_dh_parametersMột chuỗi ở định dạng PEM và có thể được chuyển đến create_asymmetric_private_key tham số create_dh_parametersCác thông số như sau
create_digest(digest_type, str)Tạo một thông báo từ chuỗi đã cho bằng cách sử dụng loại thông báo đã cho. Chuỗi thông báo có thể được sử dụng với asymmetric_sign và asymmetric_verify đầu ra create_digestBản tóm tắt của chuỗi đã cho dưới dạng chuỗi nhị phân tham số create_digestCác thông số như sau
biến ngưỡng mã hóaGiới hạn độ dài khóa tối đa được xác định bởi OpenSSL. Quản trị viên máy chủ có thể giới hạn độ dài khóa tối đa bằng cách sử dụng các biến ngưỡng mã hóa Các biến được đăng ký tự động khi component_encryption_udf được cài đặt Tên biếnencryption_udf. dh_bits_threshold-- Set Global variable mysql> SET GLOBAL encryption_udf.dh_bits_threshold = 4096; -- Set Global variable mysql> SET GLOBAL encryption_udf.rsa_bits_threshold = 4096; 9Biến đặt giới hạn tối đa cho hàm create_dh_parameters do người dùng xác định và được ưu tiên hơn giá trị độ dài tối đa của OpenSSL OptionDescriptioncommand-lineYesscopeGlobaldata typeunsigned integerdefault10000Phạm vi cho biến này là từ 1024 đến 10.000. Giá trị mặc định là 10.000 mã hóa_udf. dsa_bits_thresholdBiến đặt giới hạn ngưỡng cho hàm do người dùng xác định create_asymmetric_priv_key khi hàm được gọi với tham số RSA và được ưu tiên hơn giá trị độ dài tối đa của OpenSSL Làm cách nào để mã hóa dữ liệu trong MySQL?Để kích hoạt mã hóa cho vùng bảng hệ thống mysql, 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'; .
Chức năng mã hóa mật khẩu trong MySQL là gì?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.
MySQL có mã hóa không?Mã hóa dữ liệu trong suốt dành cho doanh nghiệp MySQL (TDE) bảo vệ dữ liệu quan trọng của bạn bằng cách bật mã hóa dữ liệu lưu trữ trong cơ sở dữ liệu . Nó bảo vệ sự riêng tư của thông tin của bạn, ngăn ngừa vi phạm dữ liệu và giúp đáp ứng các yêu cầu quy định bao gồm. Tiêu chuẩn bảo mật dữ liệu ngành thẻ thanh toán (PCI DSS)
Làm cách nào để mã hóa một cột 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; |