jsrsasign:无法使用PEM RSA公钥验证JWT

时间:2015-08-11 06:45:51

标签: javascript

我使用jsrsasign来验证浏览器应用程序中的JWT; JWT使用服务器上的非对称RSA密钥进行签名(使用不同的库)。

我试图执行以下操作:

jsrsasign.default.jws.JWS.verifyJWT('ey.......' /* my jwt */, '-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAwEYqf3HAL+h0CbcM6cnVfT6hDw0nNPkLYKld54qRYhJa+txnI8so
bIhP4/1l3TnNZldFFOatRlZAxuNG8Dk4L/QQmDeIsOkYQ5oiytSCbUrJv44aOPjL
G72XhVOaOLMT2vp/guOVAjTYOyF83asoOpPVtFeiBHhKudMrpPzeq3qwGMxfVVPy
NlztFjnTlkAKMtkbkwcpzdTn4y/pDo47+LgkDckReoqTIK4Z1bp86Oa6eBOa7/6w
hIXG3aCQiMQfJUBEBRA7mmV4g+jNWMhCBMEsOZj+KUErfilPv1FL4zP3E8kNCu+B
GYCSuj0doIxreVHDifXd+5Lmhr6NDkhG5QIDAQAB
-----END RSA PUBLIC KEY-----', { alg: 'RS256'});

我收到一个完全无益的错误 - 它表示"不支持参数"。有没有人碰到这个?你是怎么解决这个问题的?

1 个答案:

答案 0 :(得分:0)

此处已解决:https://github.com/kjur/jsrsasign/issues/105

该库仅支持PKCS#8格式的公钥,而不支持PCKS1。这里有不同格式(以及它们之间的转换)的绝佳解释:How can I transform between the two styles of public key format, one "BEGIN RSA PUBLIC KEY", the other is "BEGIN PUBLIC KEY"