您好我尝试使用crypto js在JS上复制这些命令但没有成功
openssl pkcs8 -inform DER -in #{file.key} -passin pass:#{password} -out myPrivate.key
用这个我获得一个rsa编码的私钥,我可以使用,计算它的模数并将其与另一个文件进行比较
openssl rsa -in myPrivate.key -noout -modulus
openssl x509 -inform DER -in certificate.cer -noout -modulus
如果这些2的输出相等,则用户被授权,但是我试图用forge在JS上复制这个并没有成功,当我在字符串上读取文件并尝试时,它会不断抛出错误将它们传递给它。
有人可以帮帮我吗?
答案 0 :(得分:0)
我只是简单地检查私钥的模数和公钥的模数是否相同,以确定用户是否被授权。话虽这么说,使用锻造,我相信这应该做你要求的:
function isAuthorized(privateKeyPem, password, certificatePem) {
var privateKey = forge.pki.decryptRsaPrivateKey(
privateKeyPem, password);
var certificate = forge.pki.certificateFromPem(certificatePem);
var publicKey = certificate.publicKey;
// returns true when modulus is the same
return privateKey.n.compareTo(publicKey.n) === 0;
}
如果您使用的是未加密的私钥,请改用(从PEM格式转换):
var privateKey = forge.pki.privateKeyFromPem(privateKeyPem);