إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime 13.3 LTS وما فوق
فك تشفير ثنائي تم إنتاجه باستخدام تشفير AES وإرجاع NULL إذا فشل ذلك لأي سبب من الأسباب.
بناء الجملة
try_aes_decrypt(expr, key [, mode [, padding [, aad]]])
الوسيطات
expr: التعبير BINARY المراد فك تشفيره.key: تعبير ثنائي. يجب أن يتطابق مع المفتاح المستخدم في الأصل لإنتاج القيمة المشفرة وأن يكون طوله 16 أو 24 أو 32 بايت.mode: تعبير STRING اختياري يصف وضع التشفير المستخدم لإنتاج القيمة المشفرة.padding: تعبير STRING اختياري يصف كيفية معالجة التشفير ترك مساحة للقيمة إلى طول المفتاح.aad: تعبير اختياريSTRINGيوفر بيانات إضافية مصادق عليها (AAD) فيGCMالوضع. يجب أن تتطابق معaadالمستخدمة لإنتاج القيمة المشفرة. ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.
المرتجعات
ثنائي.
mode يجب أن يكون واحدا من (غير حساس لحالة الأحرف):
'ECB': استخدام وضع دفتر التعليمات البرمجية الإلكتروني (ECB ).'GCM': استخدم Galois/Counter Mode (GCM) . هذا هو الوضع الافتراضي.
padding يجب أن يكون واحدا من (غير حساس لحالة الأحرف):
'NONE': لا يستخدم أي ترك مساحة. صالح فقط ل'GCM'.'PKCS': يستخدم ترك مساحة مساحة معايير تشفير المفتاح العام (PKCS ). صالح فقط ل'ECB'.'DEFAULT': يستخدم'NONE'لوضع'GCM''ECB'و'PKCS'.
تعتمد الخوارزمية على طول المفتاح:
16: AES-12824: AES-19232: AES-256
لرفع الأخطاء بدلا من NULL في حالة حالات الخطأ، استخدم try_aes_decrypt.
الأمثلة
> SELECT base64(aes_encrypt('Spark', 'abcdefghijklmnop'));
4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn
> SELECT cast(try_aes_decrypt(unbase64('4A5jOAh9FNGwoMeuJukfllrLdHEZxA2DyuSQAWz77dfn'),
'abcdefghijklmnop') AS STRING);
Spark
> SELECT base64(aes_encrypt('Spark SQL', '1234567890abcdef', 'ECB', 'PKCS'));
3lmwu+Mw0H3fi5NDvcu9lg==
> SELECT cast(try_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==
-- 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('Spark SQL', '1234567890abcdef', 'GCM', 'DEFAULT', '123456789012', 'Some AAD'));
MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA==
> SELECT cast(try_aes_decrypt(unbase64('MTIzNDU2Nzg5MDEyMdXvR41sJqwZ6hnTU8FRTTtXbL8yeChIZA=='),
'1234567890abcdef', 'GCM', 'DEFAULT', 'Some AAD') AS STRING);
Spark SQL