Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
belirtilen inputile verilen mode içinde AES kullanmanın şifrelenmiş değerini padding döndürür. 16, 24 ve 32 bit anahtar uzunlukları desteklenir. Desteklenen (mode, padding) birleşimleri şunlardır: (ECB, PKCS), (GCM, NONE) ve (CBC, PKCS). İsteğe bağlı başlatma vektörleri (IV) yalnızca CBC ve GCM modları için desteklenir. Bunlar CBC için 16 bayt ve GCM için 12 bayt olmalıdır. Sağlanmazsa, rastgele bir vektör oluşturulur ve çıkışa eklenir. İsteğe bağlı ek kimliği doğrulanmış veriler (AAD) yalnızca GCM için desteklenir. Şifreleme için sağlanırsa, şifre çözme için aynı AAD değeri sağlanmalıdır. Varsayılan mod GCM'dir.
Sözdizimi
from pyspark.sql import functions as sf
sf.aes_encrypt(input, key, mode=None, padding=None, iv=None, aad=None)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
input |
pyspark.sql.Column veya str |
Şifrelenmesi gereken ikili değer. |
key |
pyspark.sql.Column veya str |
Verileri şifrelemek için kullanılacak parola. |
mode |
pyspark.sql.Column veya str, isteğe bağlı |
İletileri şifrelemek için hangi blok şifreleme modunun kullanılacağını belirtir. Geçerli modlar: ECB, GCM, CBC. |
padding |
pyspark.sql.Column veya str, isteğe bağlı |
Uzunluğu blok boyutunun katı olmayan iletilerin nasıl doldurulacaklarını belirtir. Geçerli değerler: PKCS, NONE, DEFAULT. DEFAULT doldurma, ECB için PKCS, GCM için NONE ve CBC için PKCS anlamına gelir. |
iv |
pyspark.sql.Column veya str, isteğe bağlı |
İsteğe bağlı başlatma vektöru. Yalnızca CBC ve GCM modları için desteklenir. Geçerli değerler: Yok veya "". CBC modu için 16 baytlık dizi. GCM modu için 12 baytlık dizi. |
aad |
pyspark.sql.Column veya str, isteğe bağlı |
İsteğe bağlı ek kimliği doğrulanmış veriler. Yalnızca GCM modu için desteklenir. Bu herhangi bir serbest biçimli giriş olabilir ve hem şifreleme hem de şifre çözme için sağlanmalıdır. |
İade
pyspark.sql.Column: Şifrelenmiş değer içeren yeni bir sütun.
Örnekler
Örnek 1: Verileri anahtar, mod, doldurma, iv ve aad ile şifreleme
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")), df.aad)
)).show(truncate=False)
+-----------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), aad))|
+-----------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sTLm7KD9UcZ2nlRdYDe/PX4 |
+-----------------------------------------------------------------------+
Örnek 2: Verileri anahtar, mod, doldurma ve iv ile şifreleme
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark", "abcdefghijklmnop12345678ABCDEFGH", "GCM", "DEFAULT",
"000000000000000000000000", "This is an AAD mixed into the input",)],
["input", "key", "mode", "padding", "iv", "aad"]
)
df.select(sf.base64(sf.aes_encrypt(
df.input, df.key, "mode", df.padding, sf.to_binary(df.iv, sf.lit("hex")))
)).show(truncate=False)
+--------------------------------------------------------------------+
|base64(aes_encrypt(input, key, mode, padding, to_binary(iv, hex), ))|
+--------------------------------------------------------------------+
|AAAAAAAAAAAAAAAAQiYi+sRNYDAOTjdSEcYBFsAWPL1f |
+--------------------------------------------------------------------+
Örnek 3: Verileri anahtar, mod ve doldurma ile şifreleme
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "1234567890abcdef", "ECB", "PKCS",)],
["input", "key", "mode", "padding"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode", df.padding),
df.key, df.mode, df.padding
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, padding, , ), key, mode, padding, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Örnek 4: Verileri anahtar ve modla şifreleme
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "0000111122223333", "ECB",)],
["input", "key", "mode"]
)
df.select(sf.aes_decrypt(sf.aes_encrypt(df.input, df.key, "mode"),
df.key, df.mode
).cast("STRING")).show(truncate=False)
+---------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(aes_encrypt(input, key, mode, DEFAULT, , ), key, mode, DEFAULT, ) AS STRING)|
+---------------------------------------------------------------------------------------------+
|Spark SQL |
+---------------------------------------------------------------------------------------------+
Örnek 5: Verileri anahtarla şifreleme
from pyspark.sql import functions as sf
df = spark.createDataFrame([(
"Spark SQL", "abcdefghijklmnop",)],
["input", "key"]
)
df.select(sf.aes_decrypt(
sf.unbase64(sf.base64(sf.aes_encrypt(df.input, df.key))), df.key
).cast("STRING")).show(truncate=False)
+-------------------------------------------------------------------------------------------------------------+
|CAST(aes_decrypt(unbase64(base64(aes_encrypt(input, key, GCM, DEFAULT, , ))), key, GCM, DEFAULT, ) AS STRING)|
+-------------------------------------------------------------------------------------------------------------+
|Spark SQL |
+-------------------------------------------------------------------------------------------------------------+