[英]How do I verify a HMAC or an RSA-SHA signature in client-side JavaScript?
[英]Fail to verify RSA signature on server side that was created using Javascript on client side
我在如下創建簽名的客戶端上使用偽造 。
//Client Side
var md = forge.md.sha256.create();
md.update(encryptedVote, 'utf8');
var pss = forge.pss.create({
md: forge.md.sha256.create(),
mgf: forge.mgf.mgf1.create(forge.md.sha256.create()),
saltLength: 20
});
var signature = privateKey.sign(md, pss);
然后,稍后在服務器上,我嘗試使用加密庫如下驗證簽名。
#server side
user_public_key_loaded.verify(
signature,
enc_encrypted_vote,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=20
),
hashes.SHA256()
)
我始終收到無效的簽名錯誤。 我嘗試將客戶端上的編碼更改為md.update(encryptedVote, 'latin1');
現在有時可以工作,而有些則不行。
知道我在做什么錯嗎?
我發現有時它會奏效,有時卻沒奏效。 在驗證我通過執行my_list = list(my_dict.values())
將JSON數據放入列表之前。 然后通過執行my_list[0]
和my_list[1]
訪問簽名和投票。 顯然,列表中數據的順序是隨機的,並且會不時變化。 因此,簽名和投票在我的職能中轉移了位置,有時它在其他方面沒有起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.