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

js sm2加密

作者:终生卟离   发布日期:2026-04-15   浏览:21

// 引入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);

解释说明

  1. 引入SM2加密库:首先需要引入一个支持SM2加密的JavaScript库,这里使用的是jsencrypt-sm2。可以通过npm安装该库。

  2. 生成密钥对generateKeyPair函数用于生成SM2的公钥和私钥,并将其打印出来。

  3. 加密encryptWithPublicKey函数接受公钥和要加密的数据,返回加密后的结果。

  4. 解密decryptWithPrivateKey函数接受私钥和加密后的数据,返回解密后的结果。

  5. 示例代码:演示了如何生成密钥对、加密和解密数据,并验证解密后的数据是否与原始数据一致。

上一篇:nodejs opencv

下一篇:nodejs aes加密

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

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

Laravel 中文站