AnalyticDB for MySQL支持以下功能为加密和压缩的函数。
- MD5:计算参数MD5的hash值。
- SHA1:计算字符串的SHA-1校验和。
- SHA2:计算SHA-2校验和。
- COMPRESS:压缩一个字符串并将结果作为二进制字符串返回。
- UNCOMPRESS:解压缩由COMPRESS()函数压缩的字符串。
- UNCOMPRESSED_LENGTH:在压缩之前返回一个字符串的长度。
- AES_ENCRYPT:使用AES算法进行数据加密。
- AES_DECRYPT:使用AES算法进行数据解密。
MD5
md5(varbinary x)
- 命令说明:返回参数
x
MD5的hash值。 - 返回值类型:VARCHAR
- 示例:
select md5(CAST('中国' AS VARBINARY)); +----------------------------------+ | md5(CAST('中国' AS varbinary)) | +----------------------------------+ | c13dceabcb143acd6c9298265d618a9f |
SHA1
sha1(varbinary x)
- 命令说明:计算字符串
x
的SHA-1校验和。 - 返回值类型:VARCHAR
- 示例:
select sha1(CAST('中国' AS VARBINARY)); +------------------------------------------+ | sha1(CAST('中国' AS varbinary)) | +------------------------------------------+ | 101806f57c322fb403a9788c4c24b79650d02e77 |
SHA2
sha2(varbinary x, integer y)
sha2(varbinary x, varchar y)
- 命令说明:计算字符串
x
SHA-2系列散列函数(SHA-224、SHA-256、SHA-384和SHA-512)。x
是要清理的明文字符串,y
表示结果所需的位数长度,其值必须为224、256、384、512或0。 - 返回值类型:VARCHAR
- 示例:
select sha2(CAST('中国' AS VARBINARY),256); +------------------------------------------------------------------+ | sha2(CAST('中国' AS varbinary), 256) | +------------------------------------------------------------------+ | f0e9521611bb290d7b09b8cd14a63c3fe7cbf9a2f4e0090d8238d22403d35182 |
COMPRESS
compress(varbinary x)
- 命令说明:压缩字符串
x
并将结果作为二进制字符串返回。 - 返回值类型:VARBINARY
- 示例:
select hex(compress(CAST('中国' AS VARBINARY))); +--------------------------------------------+ | hex(compress(CAST('中国' AS varbinary))) | +--------------------------------------------+ | 06000000789C7BB263EDD3D97B01104C0487 |
UNCOMPRESS
uncompress(varbinary x)
- 命令说明:解压缩
x
由COMPRESS()函数压缩的字符串。 - 返回值类型:VARBINARY
- 示例:
select uncompress(compress(CAST('中国' AS VARBINARY))); +---------------------------------------------------+ | uncompress(compress(CAST('中国' AS varbinary))) | +---------------------------------------------------+ | 中国 |
UNCOMPRESSED_LENGTH
uncompressed_length(varbinary x)
- 命令说明:在压缩之前返回字符串
x
的长度。 - 返回值类型:LONG
- 示例:
select uncompressed_length(compress(CAST('中国' AS VARBINARY))); +------------------------------------------------------------+ | uncompressed_length(compress(CAST('中国' AS varbinary))) | +------------------------------------------------------------+ | 6 |
AES_ENCRYPT
aes_encrypt(varbinary x, varchar y)
- 命令说明:使用AES算法加密
x
,y
为密钥。 - 返回值类型:VARBINARY
- 示例:
select HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123')); +-------------------------------------------------------+ | HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123')) | +-------------------------------------------------------+ | DFB166F0A03113AA848C0CE545D58757 |
AES_DECRYPT
aes_decrypt(varbinary x, varchar y)
- 命令说明:使用AES算法解密
x
,y
为密钥。 - 返回值类型:VARBINARY
- 示例:
select aes_decrypt(aes_encrypt(CAST('中国' AS VARBINARY), '0123'),'0123'); +-----------------------------------------------------------------------+ | aes_decrypt(aes_encrypt(CAST('中国' AS varbinary), '0123'), '0123') | +-----------------------------------------------------------------------+ | 中国 |