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)            
  • 命令说明:返回参数xMD5的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)            
  • 命令说明:计算字符串xSHA-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算法加密xy为密钥。
  • 返回值类型: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算法解密xy为密钥。
  • 返回值类型:VARBINARY
  • 示例:
        select aes_decrypt(aes_encrypt(CAST('中国' AS VARBINARY), '0123'),'0123');
        +-----------------------------------------------------------------------+
        | aes_decrypt(aes_encrypt(CAST('中国' AS varbinary), '0123'), '0123')   |
        +-----------------------------------------------------------------------+
        | 中国                                                                  |