AES_DECRYPT 使用 AES 解密

AES_DECRYPT() 函数使用 AES(高级加密标准)算法解密数据。可通过 AES_ENCRYPT 函数加密 AES 数据。

使用 AES_DECRYPT() 的语句对于基于语句的复制是不安全的,并且不能存储在查询缓存中。

语法说明

AES_DECRYPT(crypt_str,key_str[,init_vector])

参数说明

  • crypt_str  待进行 AES 解密的密文字符串

  • key_str  密钥字符串

  • init_vector  可选的,为需要它的块加密模式提供了一个初始化向量

示例用法

(1)通过调用 RANDOM_BYTES(16) 生成用于初始化向量的随机字节串。对于需要初始化向量的加密模式,必须使用相同的向量进行加密和解密。如下:

mysql> SET block_encryption_mode = 'aes-256-cbc';
Query OK, 0 rows affected (0.00 sec)

mysql> SET @key_str = SHA2('My secret passphrase',512);
Query OK, 0 rows affected (0.00 sec)

mysql> SET @init_vector = RANDOM_BYTES(16);
Query OK, 0 rows affected (0.00 sec)

mysql> SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);
+-----------------------------------------------+
| AES_DECRYPT(@crypt_str,@key_str,@init_vector) |
+-----------------------------------------------+
| text                                          |
+-----------------------------------------------+
1 row in set (0.03 sec)
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号