js rsa验签_Javascript-如何获得证书以使用jsrsasign验证RSA数字签名?

我正在使用jsrsasign,并且具有我之前生成的RSA公钥和私钥.我使用以下代码生成签名.

var key = new RSAKey();

key.readPrivateKeyFromPEMString($("#private")[0].value); // "private" is a textarea containing the PEM encoded private key.

var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"});

sig.initSign(key);

sig.updateString('message');

var sigValueHex = sig.sign();

这产生了预期的十六进制签名. jsrsasign的文档提供了以下代码来验证签名.

var sig = new KJUR.crypto.Signature({"alg": "SHA1withRSA", "prov": "cryptojs/jsrsa"});

sig.initVerifyByCertificatePEM("-----BEGIN CERTIFICATE-----(snip)");

sig.updateString('message');

var isValid = sig.verify(sigValueHex);

我的问题是我没有要验证的证书. sig.sign()仅提供签名,不提供证书.还有sig.initVerifyByPublicKey(RSAKey),乍一看似乎很有希望.但是,RSAKey仅具有获取私钥而非公钥的方法.

那么,我的问题是如何获得此证书?如果不能,如何从公钥中获取RSAKey对象?而且,如果我不能这样做,是否有更好的方法来使用javascript进行数字签名?

如果无法使用我使用的方法来执行此操作,是否有更好的方法?我在这里的主要目标是能够将消息发送到服务器,并确保该消息未被篡改并且来自正确的位置. SSL不是此处的选项.消息不需要加密,只需保护即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值