Security and Cryptography in Python - HMAC
Security and Cryptography in Python - HMAC
Implement in Python
import hashlib
# Alice and Bob share a secret key
secret_key = "secret key".encode()
# Alice wants to compute a MAC
m = "Hey Bob. You are still awesome.".encode()
sha256 = hashlib.sha256()
sha256.update(secret_key)
sha256.update(m)
hmac = sha256.digest()
print(m, hmac)
# Bob receives and validates the HMAC
sha256 = hashlib.sha256()
sha256.update(secret_key)
sha256.update(m)
hmac = sha256.digest()
print(m, hmac)
Running Result:
What happens if Eve modifies a message.
import hashlib
def modify(m):
l = list(m)
l[0] = l[0] ^ 1
return bytes(l)
# Alice and Bob share a secret key
secret_key = "secret key".encode()
# Alice wants to compute a MAC
m = "Hey Bob. You are still awesome.".encode()
sha256 = hashlib.sha256()
sha256.update(secret_key)
sha256.update(m)
hmac = sha256.digest()
print(m, hmac)
# Eve comes along
m = modify(m)
print(m)
# Bob receives and validates the HMAC
sha256 = hashlib.sha256()
sha256.update(secret_key)
sha256.update(m)
hmac = sha256.digest()
print(m, hmac)
Running Result:
相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。