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

cryptojs rsa加密

作者:风外听竹   发布日期:2025-09-16   浏览:66

// 使用 CryptoJS 和 RSA 进行加密的示例代码

// 首先需要引入必要的库
// 由于 CryptoJS 本身不支持 RSA 加密,因此我们需要使用其他库如 jsrsasign 或者 rsa-js 来实现 RSA 加密。
// 在这里我们使用 jsrsasign 库来进行 RSA 加密。

// 引入 jsrsasign 库
// <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/8.0.15/jsrsasign-all-min.js"></script>

// 生成公钥和私钥 (通常这些密钥是提前生成并保存的)
var publicKeyPEM = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7mWVwKZlrdSdlIjCN2u+yOzFZ
yvL+U6hEoXtJ9c2NnBk3sYdX+CpH1PzJKCLhoRfo+pqUaZ+FQDQldZ2X+jrC+S9T
4rQ+z9+aA0xRfIwZQFtGwqW+dKbWXgePRo8Xe+BbO9z0CfHLox8JwQ0u3gFyLubh
kzqyhVbQIDAQAB
-----END PUBLIC KEY-----`;

var privateKeyPEM = `-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALD7WVRvS2tsclNk
bElqQ04ydSt5T3pmWXpMLVVaaUVveFRKejljUmZvKnBxdWFaK0ZRCHFsZFpyQytT
OVQ0cnErejkrYUAweFJmSXdaUUZ0R3dxVytka2FXSmhxUHJvOFhlK0JibTl6MENm
SGxveDhKd1Ewd3VzZ0Z5THViaGt6cXloVmJRAgMBAAECgYEAo4X9vQZ6K2tjY25h
ZzZiMjRiNGIzMzNhMWFlMTQyODg4OGUwMDhmZDIwZjAzYTk4NTUwMGFmZjgwMGIw
ZGM2ZDcyZmY4NDIwNzk0ZTAxOWFkMjFiM2UzYzgwMjEzMzE4M2UzM2EzMzNhM2Ez
M2EzM2EzM2EzM2EzM2EzM2EzM2ECAwEAAQJBAMz7WVRvS2tsclNkbElqQ04ydSt5
T3pmWXpMLVVaaUVveFRKejljUmZvKnBxdWFaK0ZRCHFsZFpyQytTOVQ0cnErejkr
YUAweFJg4h0CQQCOu5v6K2tjY25hZzZiMjRiNGIzMzNhMWFlMTQyODg4OGUwMDhm
ZDIwZjAzYTk4NTUwMGFmZjgwMGIwZDMJAi0uAkf/AkEBAP//vQZ6K2tjY25hZzZi
MjRiNGIzMzNhMWFlMTQyODg4OGUwMDhmZDIwZjAzYTk4NTUwMGFmZjgwMGIwZDMJ
Ai0uAkf/AkECAP//vQZ6K2tjY25hZzZiMjRiNGIzMzNhMWFlMTQyODg4OGUwMDhm
ZDIwZjAzYTk4NTUwMGFmZjgwMGIwZDMJAI0uAkf/AkECAP//vQZ6K2tjY25hZzZi
MjRiNGIzMzNhMWFlMTQyODg4OGUwMDhmZDIwZjAzYTk4NTUwMGFmZjgwMGIwZDMJ
AI0uAkf/AkEC
-----END PRIVATE KEY-----`;

// 将 PEM 格式的公钥和私钥转换为 Key 对象
var publicKey = KEYUTIL.getKey(publicKeyPEM);
var privateKey = KEYUTIL.getKey(privateKeyPEM);

// 要加密的数据
var data = "Hello, World!";

// 使用公钥进行加密
var encryptedData = KJUR.crypto.Cipher.encrypt(data, publicKey);

console.log("Encrypted Data: ", encryptedData);

// 使用私钥进行解密
var decryptedData = KJUR.crypto.Cipher.decrypt(encryptedData, privateKey);

console.log("Decrypted Data: ", decryptedData);

解释说明:

  1. 引入 jsrsasign 库:CryptoJS 本身不支持 RSA 加密,所以我们使用 jsrsasign 库来处理 RSA 加密和解密。
  2. 生成公钥和私钥:在实际应用中,公钥和私钥通常是提前生成并保存的。这里为了演示方便,直接提供了两个 PEM 格式的公钥和私钥。
  3. 将 PEM 格式的公钥和私钥转换为 Key 对象:使用 KEYUTIL.getKey() 方法将 PEM 格式的密钥转换为可以使用的 Key 对象。
  4. 加密数据:使用公钥对数据进行加密,得到加密后的字符串。
  5. 解密数据:使用私钥对加密后的数据进行解密,恢复原始数据。

请注意,实际应用中应该妥善保管私钥,并确保公钥的安全分发。

上一篇:js 数组 reduce

下一篇:js 查找字符串中是否包含字符

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 对象数组合并

js 对象转数组

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

Laravel 中文站