You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript/ReactJS环境使用公钥做RSA加密,NodeRSA导入公钥报错如何解决

问题原因

  1. 导入格式参数错误:pkcs8是私钥存储格式,你持有的-----BEGIN PUBLIC KEY-----开头的公钥为SPKI格式,不能用pkcs8参数导入。
  2. 公钥字符串可能存在多余前后空格、换行符等空白字符,导致ASN.1解析失败。

修复代码

import NodeRSA from 'node-rsa';
const key = new NodeRSA();
let keyData = `-----BEGIN PUBLIC KEY-----MIIBCgKCAQEAzK1MF/...-----END PUBLIC KEY-----`
// 先清洗公钥字符串,去除所有多余空白字符
const cleanedKey = keyData.replace(/\s/g, '');
// 用public格式导入SPKI标准公钥
key.importKey(cleanedKey, 'public');

// 短消息加密示例,输出base64格式加密结果
const plainText = '待加密的短消息';
const encryptedResult = key.encrypt(plainText, 'base64');
console.log(encryptedResult);

补充排查点

如果按上述代码仍导入失败,请检查公钥完整性:

  • 首尾-----BEGIN PUBLIC KEY-----、-----END PUBLIC KEY-----标记是否完整
  • 中间的base64编码内容没有缺失、乱码、多余特殊字符

内容的提问来源于stack exchange,提问作者kamikazzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:12:08