跳到主要内容
版本:Latest-4.0

aes_decrypt

默认使用 AES_128_ECB 算法将字符串 str 解密并返回一个二进制字符串。

语法

aes_decrypt(str, key_str[, init_vector][, encryption_mode][, aad_str]);

参数说明

  • 必填参数:

    • str: 待解密的字符串,支持的数据类型为 VARCHAR。
    • key_str: 用于加密 str 的 key 字符串,支持的数据类型为 VARCHAR。
  • 可选参数:

    • init_vector: Initialization Vector(IV),初始化向量是 AES 加密中至关重要的安全参数,用于确保相同明文加密后产生不同的密文。只在СВС/CFB/OFB/CTR/GCM模式下生效。支持的数据类型为 VARCHAR。
    • encryption_mode: 加密算法,支持算法如下。支持的数据类型为 VARCHAR。
    ECBCBCCFBCFB1CFB8CFB128OFBCTRGCM
    AES_128_ECBAES_128_CBCAES_128_CFBAES_128_CFB1AES_128_CFB8AES_128_CFB128AES_128_OFBAES_128_CTRAES_128_GCM
    AES_192_ECBAES_192_CBCAES_192_CFBAES_192_CFB1AES_192_CFB8AES_192_CFB128AES_192_OFBAES_192_CTRAES_192_GCM
    AES_256_ECBAES_256_CBCAES_256_CFBAES_256_CFB1AES_256_CFB8AES_256_CFB128AES_256_OFBAES_256_CTRAES_256_GCM
    • aad_str 指的是附加数据(Additional Authenticated Data,AAD),这是认证加密模式(如 GCM)特有的概念,在加密过程中不被加密的数据。支持的数据类型为 VARCHAR。

返回值说明

返回值的数据类型为 VARCHAR。如果输入值非法,则返回 NULL。

示例

将 Base64 编码过的字符串进行解码,然后进行 AES 解密。

mysql> select AES_DECRYPT(from_base64('uv/Lhzm74syo8JlfWarwKA==  '),'F3229A0B371ED2D9441B830D21A390C3');
+--------------------------------------------------------------------------------------------+
| aes_decrypt(from_base64('uv/Lhzm74syo8JlfWarwKA== '), 'F3229A0B371ED2D9441B830D21A390C3') |
+--------------------------------------------------------------------------------------------+
| starrocks |
+--------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select AES_DECRYPT(from_base64('uv/Lhzm74syo8JlfWarwKA=='),'F3229A0B371ED2D9441B830D21A390C3', NULL, "AES_128_ECB");
+---------------------------------------------------------------------------------------------------------------+
| aes_decrypt(from_base64('uv/Lhzm74syo8JlfWarwKA=='), 'F3229A0B371ED2D9441B830D21A390C3', NULL, 'AES_128_ECB') |
+---------------------------------------------------------------------------------------------------------------+
| starrocks |
+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select AES_DECRYPT(from_base64('taXlwIvir9yff94F5Uv/KA=='),'F3229A0B371ED2D9441B830D21A390C3', "abcdefg", "AES_128_CBC");
+--------------------------------------------------------------------------------------------------------------------+
| aes_decrypt(from_base64('taXlwIvir9yff94F5Uv/KA=='), 'F3229A0B371ED2D9441B830D21A390C3', 'abcdefg', 'AES_128_CBC') |
+--------------------------------------------------------------------------------------------------------------------+
| starrocks |
+--------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select AES_DECRYPT(from_base64('YWJjZGVmZ2hpamtsdpJC2rnrGmvqKQv/WcoO6NuOCXvUnC8pCw=='),'F3229A0B371ED2D9441B830D21A390C3', "abcdefghijklmnop", "AES_128_GCM", "abcdefg");
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| aes_decrypt(from_base64('YWJjZGVmZ2hpamtsdpJC2rnrGmvqKQv/WcoO6NuOCXvUnC8pCw=='), 'F3229A0B371ED2D9441B830D21A390C3', 'abcdefghijklmnop', 'AES_128_GCM', 'abcdefg') |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| starrocks |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.