HMAC SHA256ハッシュした文字列をBase64エンコードした文字列は、REST APIでよく利用されています。Pythonの標準ライブラリだけでHMAC SHA256ハッシュ化しBase64エンコードも可能です。コード例は、2行程度です。
import hashlib import hmac import base64 secretKey = 'mjeld1234' message = '文字列' signature = hmac.new(key=bytes(secretKey,'utf-8'), msg=bytes(message,'utf-8'), digestmod=hashlib.sha256).digest() base64_signature = base64.b64encode(signature).decode() print(base64_signature)
hashlib,hmac,base64この3つのライブラリをimportして使います
実行するとprint()には「KEmHEG1L9Y/2kRXNf/zIMfwf4NKIXX70qqjjIgCx3qc=」が表示されます。Base64エンコードを行わない場合下記のように1行で記述できます。
import hashlib import hmac secretKey = 'mjeld1234' message = '文字列' signature = hmac.new(key=bytes(secretKey,'utf-8'), msg=bytes(message,'utf-8'), digestmod=hashlib.sha256).hexdigest() print(signature)
digest()部分をhexdigest()に変えていま。hexdigest()は「string of hexadecimal」ということらしいです