[英]How to calculate the HMAC(hsa256) of a text using a public certificate (.pem) as key
我正在研究Json Web令牌,並想使用python重現它,但是我在努力使用公共證書(pem文件)作為密鑰來計算文本的HMAC_SHA256。
有誰知道我能做到這一點!
TKS
好吧,經過22個小時的學習/ google,我明白了這一點。
擾流板警報
由於這是pentesterlab的專業練習之一,因此我不會張貼代碼演示如何使用HSA256生成完整的JWT。 相反,如果我使用python中的pem文件發布如何計算HSA256會更好,因為這是我最初的問題:
import hashlib
import hmac
key = open("public_cert.pem","r").read()
signature = hmac.new(key, unsignedToken, digestmod=hashlib.sha256).digest()
print signature
基本上,我們只需要讀取公共密鑰文件並使用hmac.new(..)函數,將hashlib.sha256設置為要使用的摘要即可。 “ unsignedToken”是我們要計算簽名的JWT文本(或聲明)。
對於仍然試圖弄清楚如何為pentesterlab的練習創建有效的JWT的人,我只能給出urlsafe-base64編碼的所有提示。 還有一個名為“ pyjwt”的python模塊可以使用,但是必須對其源代碼進行編輯以允許將公共密鑰用作HMAC密鑰。
萬一有人發現這個問題。 主持人提供的答案有效,但是這個想法是錯誤的。 您不要將任何RSA密鑰與HMAC方法一起使用。 RSA密鑰對(公共和私有)用於非對稱算法,而HMAC是對稱算法。
在HMAC中,通信的兩側與密鑰保留相同的秘密文本(字節)。 只要您將其秘密保存,它就可以是public_cert.pem
。 但是public.pem
通常是公共共享的,這使其不安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.