// 引入依赖库
// 这里我们使用 '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);
generateKeyPair 函数用于生成 RSA 的公钥和私钥对,返回的是 PEM 格式的字符串。encryptWithPublicKey 函数接受公钥和要加密的数据,返回加密后的数据。decryptWithPrivateKey 函数接受私钥和加密后的数据,返回解密后的原始数据。请注意,实际应用中生成密钥对的操作通常在服务器端进行,并且密钥管理需要非常谨慎,以确保安全性。
上一篇:js rsa 加密
下一篇:js 异或运算符
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站