hmac

Zwraca kod uwierzytelniania wiadomości z kluczami (HMAC) używającego messagekey oraz podanego skrótu algorithm. Wynik jest zwracany jako surowe bajty MAC; owij go :func:hex lub :func:base64 dla wartości tekstowej. Domyślnym algorytmem jest SHA-256.

HMAC weryfikuje zarówno integralność, jak i autentyczność wiadomości za pomocą wspólnego sekretu key: odbiorca, który go posiada key , może ponownie obliczyć kod i potwierdzić, że wiadomość nie została zmieniona i pochodzi od osoby znającej klucz. Do typowych zastosowań należą podpisywanie żądań API, weryfikacja ładunków webhook oraz wyprowadzanie kluczy podpisowych przez łańcuchowanie wywołań HMAC (na przykład AWS Signature Version 4).

Składnia

from pyspark.sql import functions as sf

sf.hmac(key, message, algorithm=None)

Parameters

Parametr Typ Description
key pyspark.sql.Column lub str Tajny klucz jako wartość binarna.
message pyspark.sql.Column lub str Wiadomość o uwierzytelnianiu jako wartość binarna.
algorithm pyspark.sql.Column lub str, opcjonalnie Algorytm skrótu. Ważne wartości: SHA-224, SHA-256, SHA-384, SHA-512, SHA-1, MD5. Domyślnie to SHA-256.

Returns

pyspark.sql.Column: Nowa kolumna zawierająca surowe bajty HMAC.

Examples

Przykład 1: Oblicz HMAC z domyślnym algorytmem SHA-256

from pyspark.sql import functions as sf
df = spark.createDataFrame([("key", "message")], ["key", "message"])
df.select(sf.hex(sf.hmac(df.key, df.message))).show(truncate=False)
+----------------------------------------------------------------+
|hex(hmac(key, message, SHA-256))                                |
+----------------------------------------------------------------+
|6E9EF29B75FFFC5B7ABAE527D58FDADB2FE42E7219011976917343065F58ED4A|
+----------------------------------------------------------------+

Przykład 2: Oblicz HMAC za pomocą algorytmu jawnego

from pyspark.sql import functions as sf
df = spark.createDataFrame([("key", "message")], ["key", "message"])
df.select(sf.hex(sf.hmac(df.key, df.message, sf.lit("SHA-1")))).show(truncate=False)
+----------------------------------------+
|hex(hmac(key, message, SHA-1))          |
+----------------------------------------+
|2088DF74D5F2146B48146CAF4965377E9D0BE3A4|
+----------------------------------------+