try_aes_decrypt
函數
適用於:磚的SQL磚運行時13.1及以上
使用AES加密解密一個二進製產生,如果由於某種原因失敗返回NULL。
參數
expr
:二進製表達式進行解密。關鍵
:一個二進製表達式。必須匹配鍵最初用於生產加密的值,16日,24日,或者32個字節長。模式
:一個可選的字符串表達式描述加密模式用於生產加密的值。填充
:一個可選的字符串表達式描述如何加密處理填充長度值的關鍵。油氣地質
:一個可選的字符串
表達式提供經過驗證的額外的數據(AAD)GCM
模式。必須匹配油氣地質
用於生產加密的值。適用於磚運行時的13.3及以上。
返回
一個二進製。
模式
必須的(不區分大小寫):
“央行”
:使用電子碼(ECB)模式。“GCM”
:使用伽羅瓦/計數器模式(GCM)。這是默認的。
填充
必須的(不區分大小寫):
“沒有”
:不使用填充。有效的隻是“GCM”
。PKCS的
:使用公鑰加密標準(PKCS)填充。有效的隻是“央行”
。“默認”
:使用“沒有”
為“GCM”
和PKCS的
為“央行”
模式。
該算法取決於關鍵的長度:
16
:aes - 12824
:aes - 19232
: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_VALUE。AES_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