MySQL AES_ENCRYPT

57 阅读1分钟

参考链接:MySQL :: MySQL 8.4 Reference Manual :: 14.13 Encryption and Compression Functions

MySQL默认是128bit Key的加密,如果使用192bit或者256bit的key参考如下:
默认block_encryption_mode=aes-128-ecb

SET block_encryption_mode = 'aes-256-cbc';
SET @key_str = SHA2('My secret passphrase',512); 
SET @init_vector = RANDOM_BYTES(16); 
SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
SELECT CAST(AES_DECRYPT(@crypt_str,@key_str,@init_vector) AS CHAR);
+-------------------------------------------------------------+ 
| CAST(AES_DECRYPT(@crypt_str,@key_str,@init_vector) AS CHAR) 
| +-------------------------------------------------------------+ 
| text 
| +-------------------------------------------------------------+