MySQL block_encryption_mode

  • Sổ tay SQL
  • Hàm SQL
  • Chức năng mã hóa
  • SM4

Trên trang này

SM4

SM4_ENCRYPT

sự miêu tả

cú pháp

VARCHAR SM4_ENCRYPT(str,key_str[,init_vector])

trả lại kết quả được mã hóa

thí dụ

MySQL > select TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));
+--------------------------------+
| to_base64(sm4_encrypt('text')) |
+--------------------------------+
| aDjwRflBrDjhBZIOFNw3Tg== |
+--------------------------------+
1 row in set (0.010 sec)

MySQL > set block_encryption_mode="SM4_128_CBC";
Query OK, 0 rows affected (0.001 sec)

MySQL > select to_base64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));
+----------------------------------------------------------------------------------+
| to_base64(sm4_encrypt('text', 'F3229A0B371ED2D9441B830D21A390C3', '0123456789')) |
+----------------------------------------------------------------------------------+
| G7yqOKfEyxdagboz6Qf01A== |
+----------------------------------------------------------------------------------+
1 row in set (0.014 sec)

từ khóa

SM4_ENCRYPT

SM4_DECRYPT

sự miêu tả

cú pháp

VARCHAR SM4_DECRYPT(str,key_str[,init_vector])

Trả lại kết quả đã giải mã

thí dụ

MySQL [(none)]> select SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');
+------------------------------------------------------+
| sm4_decrypt(from_base64('aDjwRflBrDjhBZIOFNw3Tg==')) |
+------------------------------------------------------+
| text |
+------------------------------------------------------+
1 row in set (0.009 sec)

MySQL> set block_encryption_mode="SM4_128_CBC";
Query OK, 0 rows affected (0.006 sec)

MySQL > select SM4_DECRYPT(FROM_BASE64('G7yqOKfEyxdagboz6Qf01A=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');
+--------------------------------------------------------------------------------------------------------+
| sm4_decrypt(from_base64('G7yqOKfEyxdagboz6Qf01A=='), 'F3229A0B371ED2D9441B830D21A390C3', '0123456789') |
+--------------------------------------------------------------------------------------------------------+
| text |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.012 sec)

từ khóa

SM4_DECRYPT

chỉnh sửa trang này

Phản hồi

MySQL cho phép mã hóa và giải mã dữ liệu bằng thuật toán AES (Advanced Encryption Standard) chính thức

Hàm AES_ENCRYPT() mã hóa chuỗi bằng khóa đã chỉ định và trả về dữ liệu được mã hóa ở định dạng nhị phân. Chúng tôi sử dụng hàm HEX() để chuyển đổi dữ liệu nhị phân thành chuỗi thập lục phân có thể đọc được

SELECT HEX(AES_ENCRYPT('Hello', 'ycGNDx5oT1oyED0J'));

Hàm AES_DECRYPT() giải mã dữ liệu được mã hóa bằng khóa đã chỉ định và trả về chuỗi văn bản gốc. Chúng tôi lưu trữ dữ liệu được mã hóa dưới dạng chuỗi thập lục phân. Bằng cách sử dụng hàm UNHEX(), chuỗi thập lục phân được chuyển đổi thành dữ liệu nhị phân

SELECT AES_DECRYPT(UNHEX('925F31F2F7F9679EB9896462A99F5AEC'), 'ycGNDx5oT1oyED0J');

Theo mặc định, các hàm AES_ENCRYPT()AES_DECRYPT() sử dụng độ dài khóa 128 bit và chế độ ECB. Nếu khóa được chỉ định quá nhỏ, nó sẽ được đệm rỗng

Các hàm này chấp nhận một vectơ khởi tạo (IV) làm đối số tùy chọn thứ ba. IV là bắt buộc đối với một số chế độ mã hóa khối

Làm cách nào để kiểm tra xem bảng có được mã hóa trong MySQL không?

Nếu một vùng bảng chung chứa các bảng, hãy kiểm tra thông tin bảng để xem bảng đó có được mã hóa hay không . Khi không gian bảng chung không chứa bảng, bạn có thể xác minh xem không gian bảng có được mã hóa hay không. Đối với các không gian bảng đơn lẻ, hãy xác minh tùy chọn ENCRYPTION bằng INFORMATION_SCHEMA.

Làm cách nào để mã hóa trường mật khẩu trong 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.

Làm cách nào để lưu trữ dữ liệu được mã hóa trong MySQL?

Để lưu trữ dữ liệu được mã hóa, bạn có thể sử dụng trường BLOB và sử dụng các chức năng mã hóa tích hợp của MySQL . Thí dụ. cập nhật mytable set myfield = AES_ENCRYPT('some value', SHA2('key bí mật an toàn của bạn', 512)); .

Mã hóa mặc định trong MySQL là gì?

Giá trị mặc định của nó là aes-128-ecb , có nghĩa là mã hóa sử dụng độ dài khóa là 128 bit và chế độ ECB. Để biết mô tả về các giá trị được phép của biến này, hãy xem Phần 5. 1. 8, “Các biến hệ thống máy chủ”.