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

js rsa加密

作者:角落里哭泣   发布日期:2026-07-16   浏览:95

// 引入依赖库
// 这里我们使用 'jsrsasign' 库来进行 RSA 加密。你可以通过 npm 或直接在 HTML 中引入这个库。

// 安装 jsrsasign (如果你使用 npm)
// npm install jsrsasign

// 或者在 HTML 中引入
// <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.4.0/jsrsasign-all-min.js"></script>

const KJUR = require("jsrsasign");

// 生成公钥和私钥对(通常这一步是在服务器端完成的)
function generateKeyPair() {
    const rsaKeypair = KEYUTIL.generateKeypair("RSA", 2048);
    const publicKeyPEM = KEYUTIL.getPEM(rsaKeypair.pubKeyObj);
    const privateKeyPEM = KEYUTIL.getPEM(rsaKeypair.prvKeyObj, "PKCS1PRV");
    return { publicKeyPEM, privateKeyPEM };
}

// 使用公钥加密数据
function encryptWithPublicKey(publicKeyPEM, data) {
    const key = KEYUTIL.getKey(publicKeyPEM);
    const cipher = KJUR.crypto.Cipher.encrypt(data, "RSA", { pubKey: key });
    return cipher;
}

// 使用私钥解密数据
function decryptWithPrivateKey(privateKeyPEM, encryptedData) {
    const key = KEYUTIL.getKey(privateKeyPEM);
    const plainText = KJUR.crypto.Cipher.decrypt(encryptedData, "RSA", { prvKey: key });
    return plainText;
}

// 示例用法
const { publicKeyPEM, privateKeyPEM } = generateKeyPair();
const originalData = "Hello, RSA!";
const encryptedData = encryptWithPublicKey(publicKeyPEM, originalData);
console.log("Encrypted Data:", encryptedData);

const decryptedData = decryptWithPrivateKey(privateKeyPEM, encryptedData);
console.log("Decrypted Data:", decryptedData);

解释说明:

  1. 生成密钥对generateKeyPair 函数用于生成 RSA 的公钥和私钥对,返回的是 PEM 格式的字符串。
  2. 加密数据encryptWithPublicKey 函数接受公钥和要加密的数据,返回加密后的数据。
  3. 解密数据decryptWithPrivateKey 函数接受私钥和加密后的数据,返回解密后的原始数据。
  4. 示例用法:展示了如何生成密钥对、加密和解密数据。

请注意,实际应用中生成密钥对的操作通常在服务器端进行,并且密钥管理需要非常谨慎,以确保安全性。

上一篇:js rsa 加密

下一篇:js 异或运算符

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

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

Laravel 中文站