簡體   English   中英

如何使用公共證書(.pem)作為密鑰來計算文本的HMAC(hsa256)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM