aes_decrypt

aes_decrypt

aes_decrypt介绍

aes_decrypt(expr, key[, mode[, padding[, aad]]]) - 使用指定的模式和填充方式,返回 expr 的 AES 解密值。支持的密钥长度为 16、24 和 32 位。支持的模式和填充组合有 ('ECB', 'PKCS')、('GCM', 'NONE') 和 ('CBC', 'PKCS')。仅 GCM 模式支持可选的附加认证数据 (AAD)。如果加密时提供了 AAD,则解密时也必须提供相同的 AAD 值。默认模式是 GCM。

Arguments:

  • expr - 要解密的二进制值。
  • key - 用于解密数据的密码短语。
  • mode - 指定用于解密消息的块密码模式。有效模式:ECB、GCM、CBC。
  • padding - 指定如何填充长度不是块大小倍数的消息。有效值:PKCS、NONE、DEFAULT。DEFAULT 填充意味着 ECB 模式下为 PKCS,GCM 模式下为 NONE,CBC 模式下为 PKCS。
  • aad - 可选的附加认证数据。仅 GCM 模式支持。这可以是任何自由形式的输入,并且必须在加密和解密时都提供。

Examples:

> SELECT aes_decrypt(unhex('83F16B2AA704794132802D248E6BFD4E380078182D1544813898AC97E709B28A94'), '0000111122223333');
 Spark
> SELECT aes_decrypt(unhex('6E7CA17BBB468D3084B5744BCA729FB7B2B7BCB8E4472847D02670489D95FA97DBBA7D3210'), '0000111122223333', 'GCM');
 Spark SQL
> SELECT aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='), '1234567890abcdef', 'ECB', 'PKCS');
 Spark SQL
> SELECT aes_decrypt(unbase64('2NYmDCjgXTbbxGA3/SnJEfFC/JQ7olk2VQWReIAAFKo='), '1234567890abcdef', 'CBC');
 Apache Spark
> SELECT aes_decrypt(unbase64('AAAAAAAAAAAAAAAAAAAAAPSd4mWyMZ5mhvjiAPQJnfg='), 'abcdefghijklmnop12345678ABCDEFGH', 'CBC', 'DEFAULT');
 Spark
> SELECT aes_decrypt(unbase64('AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4'), 'abcdefghijklmnop12345678ABCDEFGH', 'GCM', 'DEFAULT', 'This is an AAD mixed into the input');
 Spark

Since: 3.3.0