首页 > 解决方案 > 如何验证密钥对匹配?(节点锻造)

问题描述

我需要确保客户端生成的 RSA 密钥对在签名之前匹配。我似乎找不到任何有关如何执行此操作的文档( npm:node-forge )。我猜我可以用它签名,然后验证签名,但这效率不高。我目前有这个:

const Forge = require("node-forge");

try {
    publicKey = Forge.pki.publicKeyFromPem(publicKey);
    privateKey = Forge.pki.privateKeyFromPem(privateKey);
} catch(err) {
    // ...
}

// ...

任何想法表示赞赏。

标签: node.jscryptographynode-forge

解决方案


我找到了答案:我不需要首先发送公钥。您可以像这样从私钥构建公钥:

// const privateKey = ...;
const publicKey = Forge.pki.setRsaPublicKey(privateKey.n, privateKey.e);

可以在此处找到有关此解决方案的更多信息:仅使用 nodejs/javascript 从私钥 pem 中提取公钥


推荐阅读