hmac

Kullanılan key anahtarlı hash mesajı kimlik doğrulama kodunu (HMACmessage) ve verilen hash'i algorithmdöndürür. Sonuç ham MAC baytları olarak döner; metin değeri için :func:hex veya :func:base64 ile sarar. Varsayılan algoritmadır SHA-256.

Bir HMAC, paylaşılan bir sırrı keykullanarak mesajın hem bütünlüğünü hem de gerçekliğini doğrular: aynı key sırrı taşıyan bir alıcı kodu yeniden hesaplayabilir ve mesajın değiştirilmediğini, anahtarı bilen bir taraftan geldiğini doğrulayabilir. Yaygın kullanımlar arasında API isteklerini imzalamak, webhook yüklerini doğrulamak ve HMAC çağrılarını zincirleyerek imzalama anahtarları türetilmesi (örneğin, AWS Signature Version 4) bulunur.

Syntax

from pyspark.sql import functions as sf

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

Parameters

Parametre Türü Description
key pyspark.sql.Column veya str Gizli anahtar, ikili bir değer olarak.
message pyspark.sql.Column veya str Doğrulama mesajı, ikili bir değer olarak.
algorithm pyspark.sql.Column veya str, isteğe bağlı Karma algoritması. Geçerli değerler: SHA-224, SHA-256, SHA-384, SHA-512, SHA-1, MD5. Varsayılan SHA-256'dır.

Returns

pyspark.sql.Column: Ham HMAC baytlarını içeren yeni bir sütun.

Examples

Örnek 1: HMAC'ı varsayılan SHA-256 algoritmasıyla hesaplayın

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

Örnek 2: HMAC'ı açık bir algoritma ile hesaplayın

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