// 引入SM2加密库,例如:jsencrypt-sm2
// 可以通过npm安装:npm install jsencrypt-sm2
const sm2 = require('jsencrypt-sm2');
// 生成密钥对
function generateKeyPair() {
const keypair = sm2.generateKeyPairHex();
const publicKey = keypair.publicKey;
const privateKey = keypair.privateKey;
console.log('公钥:', publicKey);
console.log('私钥:', privateKey);
return keypair;
}
// 使用公钥进行加密
function encryptWithPublicKey(publicKey, data) {
const encrypted = sm2.doEncrypt(data, publicKey);
console.log('加密后的数据:', encrypted);
return encrypted;
}
// 使用私钥进行解密
function decryptWithPrivateKey(privateKey, encryptedData) {
const decrypted = sm2.doDecrypt(encryptedData, privateKey);
console.log('解密后的数据:', decrypted);
return decrypted;
}
// 示例代码
const keypair = generateKeyPair();
const originalData = 'Hello, SM2!';
const encryptedData = encryptWithPublicKey(keypair.publicKey, originalData);
const decryptedData = decryptWithPrivateKey(keypair.privateKey, encryptedData);
console.log('原始数据:', originalData);
console.log('解密后的数据是否与原始数据一致:', originalData === decryptedData);
引入SM2加密库:首先需要引入一个支持SM2加密的JavaScript库,这里使用的是jsencrypt-sm2。可以通过npm安装该库。
生成密钥对:generateKeyPair函数用于生成SM2的公钥和私钥,并将其打印出来。
加密:encryptWithPublicKey函数接受公钥和要加密的数据,返回加密后的结果。
解密:decryptWithPrivateKey函数接受私钥和加密后的数据,返回解密后的结果。
示例代码:演示了如何生成密钥对、加密和解密数据,并验证解密后的数据是否与原始数据一致。
上一篇:nodejs opencv
下一篇:nodejs aes加密
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站