Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí zašifrovanou hodnotu input použití AES v dané mode zadané hodnotě padding. Podporují se délky klíčů 16, 24 a 32 bitů. Podporované kombinace (mode, padding) jsou (ECB, PKCS), (GCM, NONE) a (CBC, PKCS). Volitelné inicializační vektory (IV) jsou podporovány pouze pro režimy CBC a GCM. Musí to být 16 bajtů pro CBC a 12 bajtů pro GCM. Pokud není zadaný, vygeneruje se náhodný vektor a předepíše se na výstup. Volitelná další ověřená data (AAD) se podporují jenom pro GCM. Pokud je k dispozici šifrování, musí být pro dešifrování zadaná stejná hodnota AAD. Výchozí režim je GCM.
Syntaxe
from pyspark.sql import functions as sf
sf.aes_encrypt(input, key, mode=None, padding=None, iv=None, aad=None)
Parametry
| Parameter | Typ | Description |
|---|---|---|
input |
pyspark.sql.Column nebo str |
Binární hodnota, která se má šifrovat. |
key |
pyspark.sql.Column nebo str |
Přístupové heslo, které se má použít k šifrování dat. |
mode |
pyspark.sql.Column nebo str, volitelné |
Určuje, který režim blokové šifry se má použít k šifrování zpráv. Platné režimy: ECB, GCM, CBC. |
padding |
pyspark.sql.Column nebo str, volitelné |
Určuje, jak pad zprávy, jejichž délka není násobkem velikosti bloku. Platné hodnoty: PKCS, NONE, DEFAULT. Výchozí odsazení znamená PKCS pro ECB, NONE pro GCM a PKCS pro CBC. |
iv |
pyspark.sql.Column nebo str, volitelné |
Volitelný inicializační vektor. Podporováno pouze v režimech CBC a GCM. Platné hodnoty: Žádné nebo "". Pole 16 bajtů pro režim CBC Pole 12 bajtů pro režim GCM |
aad |
pyspark.sql.Column nebo str, volitelné |
Volitelná další ověřená data. Podporuje se pouze v režimu GCM. Může to být jakýkoli vstup ve volném tvaru a musí být k dispozici pro šifrování i dešifrování. |
Návraty
pyspark.sql.Column: Nový sloupec, který obsahuje zašifrovanou hodnotu.
Examples
Příklad 1: Šifrování dat pomocí klíče, režimu, odsazení, iv a aad
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 |
+-----------------------------------------------------------------------+
Příklad 2: Šifrování dat pomocí klíče, režimu, odsazení a iv
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 |
+--------------------------------------------------------------------+
Příklad 3: Šifrování dat pomocí klíče, režimu a odsazení
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 |
+---------------------------------------------------------------------------------------------+
Příklad 4: Šifrování dat pomocí klíče a režimu
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 |
+---------------------------------------------------------------------------------------------+
Příklad 5: Šifrování dat pomocí klíče
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 |
+-------------------------------------------------------------------------------------------------------------+