aes_encrypt

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                                                                                                    |
+-------------------------------------------------------------------------------------------------------------+