try_aes_decrypt函数

适用于:检查标记是的砖的SQL检查标记是的砖运行时13.1及以上

使用AES加密解密一个二进制产生,如果由于某种原因失败返回NULL。

语法

try_aes_decrypt(expr,关键(,模式(,填充(,油气地质]]])

参数

  • expr:二进制表达式进行解密。

  • 关键:一个二进制表达式。必须匹配键最初用于生产加密的值,16日,24日,或者32个字节长。

  • 模式:一个可选的字符串表达式描述加密模式用于生产加密的值。

  • 填充:一个可选的字符串表达式描述如何加密处理填充长度值的关键。

  • 油气地质:一个可选的字符串表达式提供经过验证的额外的数据(AAD)GCM模式。必须匹配油气地质用于生产加密的值。适用于砖运行时的13.3及以上。

返回

一个二进制。

模式必须的(不区分大小写):

  • “央行”:使用电子码(ECB)模式。

  • “GCM”:使用伽罗瓦/计数器模式(GCM)。这是默认的。

填充必须的(不区分大小写):

  • “没有”:不使用填充。有效的只是“GCM”

  • PKCS的:使用公钥加密标准(PKCS)填充。有效的只是“央行”

  • “默认”:使用“没有”“GCM”PKCS的“央行”模式。

该算法取决于关键的长度:

  • 16:aes - 128

  • 24:aes - 192

  • 32:aes - 256

提高而不是错误条件在出错的情况下使用try_aes_decrypt

例子

>选择base64(aes_encrypt(“火花”,“abcdefghijklmnop”));4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn>选择(try_aes_decrypt(unbase64(“4 a5joah9fngwomeujukfllrldhezxa2dyusqawz77dfn”),“abcdefghijklmnop”)作为字符串);火花>选择base64(aes_encrypt(“火花SQL”,“1234567890六边形abcdef”,“央行”,PKCS的));3lmwu+Mw0H3fi5NDvcu9lg= =>选择(try_aes_decrypt(unbase64(“3 lmwu + Mw0H3fi5NDvcu9lg = =”),“1234567890六边形abcdef”,“央行”,PKCS的)作为字符串);火花SQL>选择base64(aes_encrypt(“火花SQL”,“1234567890六边形abcdef”,“GCM”));2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA= =——try_aes_decrypt容忍aes_decrypt不是一个错误。>选择(aes_decrypt(x“1234567890 abcdef1234567890abcdef”,“1234567890六边形abcdef”,“GCM”)作为字符串);错误:INVALID_PARAMETER_VALUEAES_KEY>选择(try_aes_decrypt(x“1234567890 abcdef1234567890abcdef”,“1234567890六边形abcdef”,“GCM”)作为字符串);>选择base64(aes_encrypt(“火花SQL”,“1234567890六边形abcdef”,“GCM”,“默认”,“123456789012”,一些广告的));MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA= =>选择(try_aes_decrypt(unbase64(“MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA = =”),“1234567890六边形abcdef”,“GCM”,“默认”,一些广告的)作为字符串);火花SQL