名称
|
函数
|
参数说明
|
格式与返回值
|
FDL的SparkSQL算子内用法
|
MD5
|
MD5(expr)
|
|
-
|
示例:SELECT MD5('FineDataLink')
|
SHA
|
SHA(expr)
|
-
|
-
|
示例:SELECT SHA('FineDataLink')
|
SHA1
|
SHA1(expr)
|
-
|
-
|
示例:SELECT SHA1('FineDataLink')
|
SHA2
|
SHA2(expr, bitLength)
|
-
|
-
|
注:bitLength为SHA2的位数,支持SHA-224、SHA-256、SHA-384和 SHA-512,默认为SHA256。
示例:SELECT SHA2('FineDataLink',256)
|
RSA
|
RSA(expr,secretKey,keyFormat)
|
-
|
-
|
注:secretKey为输入的密钥、格式为base64编码,keyFormat为密钥格式、值为'PKCS1'和'PKCS8'(不区分格式的大小写),本函数返回值格式也为base64编码
示例:SELECT RSA( 'FineDataLink' , 'MIIBCgKCAQEAnLdoA3ba57YHBAenYbLGTcdC48VVvVVDXV6N/W+1FztBRjvNPV1D
MOcIJBrveTlgKug2PCVynaIttaNql6p/+Bm4G41kyZYy7RSaUCaJ3ryjcXsKfClt
nG9vCwbIN+bVchxRzj739zIA1tBHn9v22PhFcEfsSAy2G2EwM4bQ38n2UrMse9wb
LUGT0kzyquwPQs7vriU+1XBkrdssoAqbwgW5yUqxDosYB5h7D1YTW0qKkJ6PPNnL
XbMv2Meyjxq1sbWoF/m8uboaKklqal1ep5UqTp9OFNOaTrVyXY4Gkt7wq3OoNvk9
2cJ1fHz9wnriGo+oNut9gQr1WVjOzRkAwwIDAQAB' , 'PKCS1')
|
AES
注:4.1.5.1开始支持。
|
aes_encrypt(expr, key[, mode[, padding[, iv[, aad]]]])
|
|
|
SELECT hex(aes_encrypt('Spark', '0000111122223333'));
|
DES
注:4.1.5.1开始支持。
|
des_encrypt(plainText, key, mode, padding, iv)
|
plainText:明文,
需要加密的文本
|
plainText:文本
key:文本格式或者byte数组格式,十六进制格式的密钥使用unhex、Base64格式的密钥使用unbase64。例如:"miyao", unhex("123def"), unbase64("some_base64_string")
返回值:byte数组,若要可视化需要套一层hex或者base64,例如:hex(des_encrypt(...)), base64(des_encrypt(...))
|
示例:
SELECT hex(des_encrypt(`[email protected]`,`my8bytky`,`ECB`,`PKCS5`,null))
|
key:密钥
|
mode:加密模式,合法的值为ECB(默认)、CBC、CFB、OFB、CTR。如果传null,则为ECB加密,传非法值报错
|
padding:填充模式,合法的值为PKCS5(默认)、ISO10126、no。如果传null,则为PKCS5填充,传非法值报错,不区分大小写
|
iv:初始向量,CBC、CFB、OFB模式必传,其他模式传null即可
|
sm4
注:4.1.5.1开始支持。
|
sm4_encrypt(plainText, key, mode, iv)
|
plainText:需要加密的文本
|
plainText:文本
key:文本格式或者byte数组格式,十六进制格式的密钥使用unhex、Base64格式的密钥使用unbase64。例如:"miyao", unhex("123def"), unbase64("some_base64_string")
返回值:byte数组,若要可视化需要套一层hex或者base64,例如:hex(sm4_encrypt(...)), base64(sm4_encrypt(...))
|
示例:
SELECT BASE64(sm4_encrypt('spark', unhex('30303030313131313232323233333333'), 'ECB', null));
O6F0JI1MwSQkSbU9Bjgb4A==
SELECT BASE64(sm4_encrypt('spark', '0000111122223333', 'ECB', null));
O6F0JI1MwSQkSbU9Bjgb4A==
|
key:密钥
|
mode:加密模式,合法的值为ECB(默认)、CBC、CFB、OFB、CTR。如果传null,则为ECB加密,传非法值报错
|
iv:初始向量,CBC模式必传,若为ECB模式请传null
|
填充模式固定为PKCS7
|
sm2
注:4.1.5.1开始支持。
|
sm2_encrypt(plainText, publicKey)
|
plainText:
需要加密的文本
publicKey:接收者的公钥
加密模式固定为新版C1C3C2
|
publicKey:十六进制数据
返回值:Base64编码
|
SELECT sm2_encrypt('spark', '04BDE0D3CBC2D3472AFAD7D020DDB3A8C3A8C22914E5E29753DF12EA91A199E2E1D9F0821EFEDB622D56DA4B719B62C7342852C0C42C84C4C83102761B678CF39F');
返回值:
BEucJcdQXwOxg7HRgZ8eWY00d2giXuEy6q5aI1w3QyVTH/np9LV4YrTfMOYCsQi3sGK6j/WP2UevXUb25g55Pri+Kqp97qfxxnxF655267XYBoHXyeWG/lCf1ZIzOk5GdHcz6UKh
|
sm2_encrypt_C1C2C3(plainText, publicKey)
|
plainText:需要明文
publicKey:公钥
加密模式固定为旧版C1C2C3
|
publicKey:十六进制数据
返回值:Base64编码
|
SELECT sm2_encrypt_C1C2C3('spark', '04BDE0D3CBC2D3472AFAD7D020DDB3A8C3A8C22914E5E29753DF12EA91A199E2E1D9F0821EFEDB622D56DA4B719B62C7342852C0C42C84C4C83102761B678CF39F');
返回值:
BJYqv1G2F7sSeC8/u2oHp5HBbg6KH9P0AmjtjT5hDcwXvBpLYLDVGZ8J7MvF8la3sMryd9hWTkxA/AOHlQLF5xa3Ko9X/+zgoNOR3pmY9P2pw9+hwO6e/xI4rgld1P2qdy9AAJ5W
|