node SM2 加密解密 签名
时间: 2024-01-11 15:22:11 浏览: 245
对于node.js中的SM2加密解密和签名,可以使用`sm-crypto`库来实现。下面是一个示例代码:
```javascript
const sm2 = require('sm-crypto').sm2;
// 生成密钥对
const { publicKey, privateKey } = sm2.generateKeyPairHex();
// 加密
const plaintext = 'Hello, World!';
const ciphertext = sm2.doEncrypt(plaintext, publicKey);
// 解密
const decryptedText = sm2.doDecrypt(ciphertext, privateKey);
// 签名
const signature = sm2.doSignature(plaintext, privateKey);
// 验证签名
const isValid = sm2.doVerifySignature(plaintext, signature, publicKey);
console.log('加密后的密文:', ciphertext);
console.log('解密后的明文:', decryptedText);
console.log('签名:', signature);
console.log('签名验证结果:', isValid);
```
需要先安装`sm-crypto`库,可以使用以下命令进行安装:
```shell
npm install sm-crypto
```
请注意,以上示例代码仅用于演示目的,实际使用时需要根据具体需求进行适当的参数配置和错误处理。
阅读全文