ich zur Zeit die Grund der Kryptographie lerne, wenn ich über dieses Stück Python-Code kommenHMAC in Nachricht vs HMAC in digest
if self.shared_hash != None:
h = HMAC.new(self.shared_hash)
hmac = data[:h.digest_size*2] #Get the HMAC part of the message
data = data[h.digest_size*2:] # Get the data part of the message
h.update(data)
if h.hexdigest() != str(hmac, 'ascii'): #HMAC is not right, so raise an error
if self.verbose:
print("Bad message")
print("HMAC from message:",str(hmac,'ascii'))
print("HMAC from digest:",h.hexdigest())
print("Not verifying message:",data)
raise RuntimeError("Bad message: HMAC does not match")
Seit HMAC die Echtheit einer Nachricht zu überprüfen ist, verstehe ich, es ist wichtig zu überprüfe den HMAC. Aber warum vergleichen wir den HMAC aus der Nachricht und den HMAC aus dem Digest. Was ist der HMAC aus dem Digest? Ist es nur ein Hash einer Nachricht?