مشاركة عبر


aes_encrypt دالة

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime 10.4 LTS وما فوق

تشفير ثنائي باستخدام تشفير AES.

بناء الجملة

aes_encrypt(expr, key [, mode [, padding[, iv[, aad]]]])

الوسيطات

  • exprBINARY: التعبير المراد تشفيره.
  • key: تعبير BINARY . المفتاح الذي سيتم استخدامه لتشفير expr. يجب أن يكون طوله 16 أو 24 أو 32 بايت.
  • mode: تعبير اختياري STRING يصف وضع التشفير.
  • padding: تعبير اختياري STRING يصف كيفية تعامل التشفير مع ترك مساحة للقيمة إلى طول المفتاح.
  • iv: تعبير اختياري STRING يوفر متجه تهيئة (IV) ل GCM أو CBC أوضاع. ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.
  • aad: تعبير اختياري STRING يوفر بيانات إضافية مصادق عليها (AAD) في GCM الوضع. ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.

المرتجعات

BINARY.

mode يجب أن يكون واحدا من (غير حساس لحالة الأحرف):

  • 'CBC': استخدم وضع تسلسل كتلة التشفير (CBC ). ينطبق على Databricks SQL وDatabricks Runtime 13.3 LTS وما فوق.
  • 'ECB': استخدام وضع دفتر التعليمات البرمجية الإلكتروني (ECB ).
  • 'GCM': استخدم Galois/Counter Mode (GCM) . هذا هو الوضع الافتراضي.

padding يجب أن يكون واحدا من (غير حساس لحالة الأحرف):

  • 'NONE': لا يستخدم أي ترك مساحة. صالح فقط ل 'GCM'.
  • 'PKCS': يستخدم ترك مساحة مساحة معايير تشفير المفتاح العام (PKCS ). صالح فقط ل 'ECB' و 'CBC'. يضيف ترك مساحة PKCS بين 1 وعدد طول المفتاح من وحدات البايت إلى مسافة expr متعددة من key الطول. قيمة كل بايت لوحة هو عدد وحدات البايت التي يتم إضافتها.
  • 'DEFAULT': يستخدم 'NONE' لوضع 'GCM' و 'PKCS' و'ECB''CBC'.

iv، عند تحديده، يجب أن يكون طوله 12 بايت و16 GCM بايت ل CBC.

تعتمد الخوارزمية على طول المفتاح:

  • 16: AES-128
  • 24: AES-192
  • 32: AES-256

الأمثلة

> 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

> 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