Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js rsa 加密

作者:故事没有她   发布日期:2026-04-25   浏览:123

// 引入 jsrsasign 库,这是一个用于 RSA 加密的 JavaScript 库
// 可以通过 npm 安装或直接在 HTML 中引入 CDN 链接

// 使用 npm 安装:
// npm install jsrsasign

// 或者在 HTML 中引入:
// <script src="https://cdn.jsdelivr.net/npm/jsrsasign@10.2.0/jsrsasign-latest.min.js"></script>

const KEYUTIL = require("jsrsasign").KEYUTIL;

// 生成公钥和私钥(通常情况下,这些密钥是预先生成并存储的)
function generateKeyPair() {
    const rsaKeypair = KEYUTIL.generateKeypair(1024, "RSA");
    const publicKey = rsaKeypair.pubKeyObj;
    const privateKey = rsaKeypair.prvKeyObj;
    return { publicKey, privateKey };
}

// 使用公钥加密数据
function encryptData(publicKey, data) {
    const cipher = KJUR.crypto.Cipher.getCipher("RSA", publicKey);
    const encryptedData = cipher.encrypt(data);
    return encryptedData;
}

// 使用私钥解密数据
function decryptData(privateKey, encryptedData) {
    const cipher = KJUR.crypto.Cipher.getCipher("RSA", privateKey);
    const decryptedData = cipher.decrypt(encryptedData);
    return decryptedData;
}

// 示例代码:生成密钥对、加密和解密
const { publicKey, privateKey } = generateKeyPair();
const originalData = "Hello, RSA!";
const encryptedData = encryptData(publicKey, originalData);
console.log("Encrypted Data:", encryptedData);

const decryptedData = decryptData(privateKey, encryptedData);
console.log("Decrypted Data:", decryptedData);

解释说明:

  1. 引入库:我们使用 jsrsasign 库来进行 RSA 加密操作。可以通过 npm 安装或直接在 HTML 中引入 CDN 链接。
  2. 生成密钥对generateKeyPair 函数生成一对 RSA 公钥和私钥。实际应用中,这些密钥通常是预先生成并安全存储的。
  3. 加密数据encryptData 函数使用公钥对数据进行加密。
  4. 解密数据decryptData 函数使用私钥对加密后的数据进行解密。
  5. 示例代码:演示了如何生成密钥对、加密和解密数据。

请注意,实际生产环境中应确保密钥的安全性,并根据需要调整密钥长度和加密算法参数。

上一篇:js 多线程

下一篇:js 异或运算符

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站