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