aes_decrypt
وظيفه
ينطبق على: Databricks SQL Databricks Runtime 10.4 LTS وما فوق
فك تشفير ثنائي تم إنتاجه باستخدام تشفير AES.
بناء الجملة
aes_decrypt(expr, key [, mode [, padding [, aad]]])
الوسيطات
expr
BINARY
: التعبير المراد فك تشفيره.key
: تعبيرBINARY
. يجب أن يتطابق مع المفتاح المستخدم في الأصل لإنتاج القيمة المشفرة وأن يكون طوله 16 أو 24 أو 32 بايت.mode
: تعبير اختياريSTRING
يصف وضع التشفير المستخدم لإنتاج القيمة المشفرة.padding
: تعبير اختياريSTRING
يصف كيفية معالجة التشفير ترك مساحة للقيمة إلى طول المفتاح.aad
: تعبير اختياريSTRING
يوفر بيانات إضافية مصادق عليها (AAD (دليل Azure النشط)) فيGCM
الوضع. يجب أن تتطابق معaad
المستخدمة لإنتاج القيمة المشفرة. ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.
المرتجعات
ثنائي.
mode
يجب أن يكون واحدا من (غير حساس لحالة الأحرف):
'CBC'
: استخدم وضع تسلسل كتلة التشفير (CBC ). ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.'ECB'
: استخدام وضع دفتر التعليمات البرمجية الإلكتروني (ECB ).'GCM'
: استخدم Galois/Counter Mode (GCM) . هذا هو الوضع الافتراضي.
padding
يجب أن يكون واحدا من (غير حساس لحالة الأحرف):
'NONE'
: لا يستخدم أي ترك مساحة. صالح فقط ل'GCM'
.'PKCS'
: يستخدم ترك مساحة مساحة معايير تشفير المفتاح العام (PKCS ). صالح فقط ل'ECB'
و'CBC'
.'DEFAULT'
: يستخدم'NONE'
لوضع'GCM'
و'PKCS'
و'ECB'
'CBC'
.
تعتمد الخوارزمية على طول المفتاح:
16
: AES-12824
: AES-19232
: AES-256
للتسامح مع أي حالات خطأ ناتجة عن فك التشفير والعودة NULL
بدلا من ذلك استخدم try_aes_decrypt
الأمثلة
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(aes_decrypt(unbase64('3lmwu+Mw0H3fi5NDvcu9lg=='),
'1234567890abcdef', 'ECB', 'PKCS') AS STRING);
Spark SQL
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM'));
2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA==
> SELECT cast(aes_decrypt(unbase64('2sXi+jZd/ws+qFC1Tnzvvde5lz+8Haryz9HHBiyrVohXUG7LHA=='),
'1234567890abcdef', 'GCM') AS STRING);
Spark SQL
-- try_aes_decrypt tolerates an error where aes_decrypt does not.
> SELECT cast(aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
Error: INVALID_PARAMETER_VALUE.AES_KEY
> SELECT cast(try_aes_decrypt(x'1234567890abcdef1234567890abcdef', '1234567890abcdef', 'GCM') AS STRING);
NULL
> SELECT base64(aes_encrypt('Apache Spark', '0000111122223333', 'CBC', 'PKCS'));
U2FsdGVkX1/ERGxwEOTDpDD4bQvDtQaNe+gXGudCcUk=
> SELECT aes_decrypt(unbase64('U2FsdGVkX1/ERGxwEOTDpDD4bQvDtQaNe+gXGudCcUk='), '0000111122223333', 'CBC', 'PKCS');
Apache Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL