PHP vs Python: Generating a HMAC
I've been writing a bit of code to integrate with a ClassMarker webhook, and you're required to check that an incoming request actually came from ClassMarker by checking the value of a base64 hash using HMAC SHA256.
The example in the documentation is written in PHP which I haven't done for about 10 years so I had to figure out how to do the same thing in Python.
This is the PHP version:
$ php -a php > echo base64_encode(hash_hmac("sha256", "my data", "my_secret", true)); vyniKpNSlxu4AfTgSJImt+j+pRx7v6m+YBobfKsoGhE=
The Python equivalent is a bit more code but it's not too bad.
Import all the libraries
import hmac import hashlib import base64
Generate that hash
data = "my data".encode("utf-8") digest = hmac.new(b"my_secret", data, digestmod=hashlib.sha256).digest() print(base64.b64encode(digest).decode()) 'vyniKpNSlxu4AfTgSJImt+j+pRx7v6m+YBobfKsoGhE='
We're getting the same value as the PHP version so it's good times all round.