本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AES_DECRYPT 函数
AES_DECRYPT 函数用于使用高级加密标准 (AES) 算法解密数据。
语法
aes_decrypt(expr, key[, mode[, padding[, aad]]])
参数
- expr
-
要解密的二进制值。
- 密钥
-
用于解密数据的密码。
密码必须与最初用于生成加密值的密钥相匹配,并且长度必须为 16、24 或 32 字节。
- mode
-
指定应使用哪种分组密码模式来解密消息。
有效模式:ECB、GCM、CBC。
- 填充
-
指定如何填充长度不是区块大小的倍数的消息。
有效值:PKCS、无、默认。
默认填充表示欧洲央行的 PKCS、GCM 的 NONE 和 CBC 的 PKCS。
- aad
-
可选的其他经过身份验证的数据 (AAD)。仅支持 GCM 模式。这可以是任何自由格式的输入,并且必须同时用于加密和解密。
返回类型
在带填充的模式下使用 AES 返回解密后的 e xpr 值。
示例
以下示例演示如何使用 Spark SQL AES_ENCRYPT 函数使用指定的加密密钥安全地加密一串数据(在本例中为 “Spark” 一词)。然后对生成的密文进行 Base64 编码,使其更易于存储或传输。
SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop')); 4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
以下示例演示了如何使用 Spark SQL AES_DECRYPT 函数来解密之前已加密和 Base64 编码的数据。解密过程需要正确的加密密钥和参数(加密模式和填充模式)才能成功恢复原始纯文本数据。
SELECT aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='), '1234567890abcdef', 'ECB', 'PKCS'); Spark SQL