- 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[]
và 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