当前位置:首页 > JavaScript

jsrsasign+js实现

2026-02-03 07:12:35JavaScript

使用 jsrsasign 实现 RSA 加密/解密

jsrsasign 是一个纯 JavaScript 实现的加密库,支持 RSA、ECDSA 等加密算法。以下是在 JavaScript 中使用 jsrsasign 实现 RSA 加密和解密的示例代码。

安装 jsrsasign:

npm install jsrsasign

生成 RSA 密钥对

const jsrsasign = require("jsrsasign");

// 生成 RSA 密钥对
const keyPair = jsrsasign.KEYUTIL.generateKeypair("RSA", 2048);
const privateKey = jsrsasign.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV");
const publicKey = jsrsasign.KEYUTIL.getPEM(keyPair.pubKeyObj);

RSA 加密

const jsrsasign = require("jsrsasign");

// 要加密的数据
const plainText = "Hello, RSA!";

// 加载公钥
const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----`;

// 使用 RSA 加密
const encrypted = jsrsasign.KJUR.crypto.Cipher.encrypt(
  plainText,
  jsrsasign.KEYUTIL.getKey(publicKey),
  "RSA"
);
console.log("加密结果:", encrypted);

RSA 解密

const jsrsasign = require("jsrsasign");

// 加密后的数据
const encryptedData = "..."; // 替换为实际的加密数据

// 加载私钥
const privateKey = `-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7VJTUt9Us8cKj
MzEfYyjiWA4R4/M2bS1GB4t7NXp98C3SC6dVMvDuictGeurT8jNbvJZHtCSuYEvu
...
-----END PRIVATE KEY-----`;

// 使用 RSA 解密
const decrypted = jsrsasign.KJUR.crypto.Cipher.decrypt(
  encryptedData,
  jsrsasign.KEYUTIL.getKey(privateKey),
  "RSA"
);
console.log("解密结果:", decrypted);

签名和验证

const jsrsasign = require("jsrsasign");

// 要签名的数据
const message = "Important message";

// 生成签名
const signature = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA" });
signature.init(privateKey);
signature.updateString(message);
const sigValue = signature.sign();

// 验证签名
const verifier = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA" });
verifier.init(publicKey);
verifier.updateString(message);
const isValid = verifier.verify(sigValue);

console.log("签名验证结果:", isValid);

注意事项

  • RSA 加密有长度限制,通常不能超过密钥长度减去一定的填充字节
  • 对于大数据加密,建议使用对称加密(如 AES)加密数据,再用 RSA 加密对称密钥
  • 密钥长度建议至少 2048 位以保证安全性
  • 私钥必须妥善保管,避免泄露

以上代码展示了 jsrsasign 库中 RSA 的基本用法,包括密钥生成、加密解密和签名验证功能。

jsrsasign+js实现

标签: jsrsasignjs
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.defin…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…