当前位置:首页 > JavaScript

jsrsasign js实现

2026-03-02 06:52:05JavaScript

以下是关于使用 jsrsasign 库在 JavaScript 中实现加密、签名等功能的详细方法:

安装与引入

通过 npm 安装 jsrsasign

npm install jsrsasign

在代码中引入:

const jsrsasign = require("jsrsasign");
// 或 ES6 导入
import { KJUR, hextob64, b64tohex } from "jsrsasign";

生成密钥对

使用 RSAKey 生成 RSA 密钥对:

const key = new jsrsasign.RSAKey();
key.generate(2048, "10001"); // 2048位密钥,公共指数 10001 (0x10001)
const pubKey = key.getPublicKey(); // PEM 格式公钥
const prvKey = key.getPrivateKey(); // PEM 格式私钥

数字签名与验证

使用私钥签名数据:

const sig = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA" });
sig.init(prvKey);
sig.updateString("待签名的数据");
const signature = sig.sign(); // 返回 Base64 编码的签名

使用公钥验证签名:

const sigV = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA" });
sigV.init(pubKey);
sigV.updateString("待验证的数据");
const isValid = sigV.verify(signature); // 返回布尔值

加密与解密

RSA 加密(通常用于加密对称密钥):

const cipher = new jsrsasign.KJUR.crypto.Cipher({ alg: "RSA", oid: "1.2.840.113549.1.1.1" });
cipher.init(pubKey);
const encrypted = cipher.encrypt("待加密数据"); // 返回 Base64 密文

RSA 解密:

const cipher = new jsrsasign.KJUR.crypto.Cipher({ alg: "RSA", oid: "1.2.840.113549.1.1.1" });
cipher.init(prvKey);
const decrypted = cipher.decrypt(encrypted); // 返回解密后的字符串

处理证书

解析 X.509 证书:

const cert = new jsrsasign.X509();
cert.readCertPEM("-----BEGIN CERTIFICATE-----..."); // PEM 格式证书
const subject = cert.getSubjectString(); // 获取主题信息
const issuer = cert.getIssuerString(); // 获取颁发者信息

哈希计算

计算数据的哈希值:

jsrsasign js实现

const hash = jsrsasign.KJUR.crypto.Util.hashString("SHA256", "待哈希数据");
console.log(jsrsasign.KJUR.crypto.Util.hexToBase64(hash)); // 输出 Base64 哈希值

注意事项

  • 密钥长度建议至少 2048 位以保证安全性。
  • 直接使用 RSA 加密大数据时性能较差,建议结合 AES 等对称加密方案。
  • 处理敏感数据时确保密钥安全存储。

以上方法覆盖了 jsrsasign 的常见使用场景,适用于数字签名、加密解密、证书处理等需求。

标签: jsrsasignjs
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现倒计时

js 实现倒计时

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

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…