AES_ENCRYPT()¶
AES_ENCRYPT(str, key_str[, init_vector])使用 AES 加密字符串并返回BLOB密文;加密模式由会话变量block_encryption_mode选择(默认aes-128-ecb;aes-256-cbc需要在第三个参数中提供 16 字节 IV)。
函数说明¶
AES_ENCRYPT() 使用 AES 以 key_str 加密 str 并返回 BLOB 密文。加
密模式由会话变量 block_encryption_mode
选择。
MatrixOne 目前支持两种模式:
aes-128-ecb(默认)。密钥派生为 16 字节;忽略可选的init_vector参数。aes-256-cbc。密钥派生为 32 字节;init_vector参数为必填,且长度至 少 16 字节。
以下情况下函数返回 NULL:
str或key_str为NULL。block_encryption_mode设置为不支持的值。选择了 CBC 模式但 IV 缺失、为
NULL或长度不足 16 字节。密钥派生或底层 AES 操作失败。
函数语法¶
> AES_ENCRYPT(str, key_str)
> AES_ENCRYPT(str, key_str, init_vector)
参数释义¶
参数 |
说明 |
|---|---|
str |
必填。要加密的明文字符串。接受 |
key_str |
必填。加密密钥。 |
init_vector |
可选。初始化向量,当 |
示例¶
mysql> SET block_encryption_mode = 'aes-128-ecb';
mysql> SELECT HEX(AES_ENCRYPT('MatrixOne', 'my-secret-key'));
+-------------------------------------------------+
| hex(aes_encrypt(matrixone, my-secret-key)) |
+-------------------------------------------------+
| 3B1A... |
+-------------------------------------------------+
mysql> SET block_encryption_mode = 'aes-256-cbc';
mysql> SELECT HEX(AES_ENCRYPT('MatrixOne', 'my-secret-key', '0123456789abcdef'));