Aracılığıyla paylaş


aes_encrypt işlevi

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 10.4 LTS ve üzeri

AES şifrelemesi kullanarak bir ikiliyi şifreler.

Söz dizimi

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

Bağımsız değişkenler

  • exprBINARY: Şifrelenecek ifade.
  • key: İfade BINARY . şifrelemek expriçin kullanılacak anahtar. 16, 24 veya 32 bayt uzunluğunda olmalıdır.
  • mode: Şifreleme modunu açıklayan isteğe bağlı STRING bir ifade.
  • padding: Şifrelemenin değerin anahtar uzunluğuna doldurmasını nasıl işlediğini açıklayan isteğe bağlı STRING ifade.
  • iv: veya CBC modları için GCM başlatma vektör (IV) sağlayan isteğe bağlı STRING ifade. Databricks SQL ve Databricks Runtime 13.3 LTS ve üzeri için geçerlidir.
  • aad: Modda kimliği doğrulanmış ek veriler (AAD) GCM sağlayan isteğe bağlı STRING bir ifade. Databricks SQL ve Databricks Runtime 13.3 LTS ve üzeri için geçerlidir.

Döndürülenler

Bir BINARY.

mode (büyük/küçük harfe duyarsız) biri olmalıdır:

  • 'CBC': Şifreleme Bloğu Zincirleme (CBC) modunu kullanın. Databricks SQL, Databricks Runtime 13.3 LTS ve üzeri için geçerlidir.
  • 'ECB': Elektronik CodeBook (ECB) modunu kullanın.
  • 'GCM': Galois/Counter Mode (GCM) kullanın. Bu varsayılan seçenektir.

padding (büyük/küçük harfe duyarsız) biri olmalıdır:

  • 'NONE': Doldurma kullanmaz. Yalnızca için 'GCM'geçerlidir.
  • 'PKCS': Ortak Anahtar Şifreleme Standartları (PKCS) doldurmayı kullanır. Yalnızca ve 'CBC'için 'ECB' geçerlidir. PKCS doldurma, bir kat key uzunluğa 1 ile anahtar uzunluğu bayt expr sayısı arasında bir sayı ekler. Her tuş takımı baytının değeri, doldurulan bayt sayısıdır.
  • 'DEFAULT': ve için 'GCM' 'PKCS' 'ECB've 'CBC' modunu kullanır.'NONE'

iv, belirtildiğinde için 12 bayt uzunluğunda GCM ve için CBC16 bayt olmalıdır.

Algoritma, anahtarın uzunluğuna bağlıdır:

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

Örnekler

> 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