node-rsa RSA加解密
日期: 2020-06-08 浏览量: 7350
使用 node-rsa 实现数据加解密
一. 生成密钥
// 公私密钥生成 const key = new NodeRsa({ b: 2048 }); // 生成2048位的密钥 const publicDer = key.exportKey('pkcs1-public-pem'); // 公钥 const privateDer = key.exportKey('pkcs1-private-pem'); // 私钥 console.log('公钥', publicDer); console.log('================'); console.log('私钥', privateDer);
二. 验签数据
// 模拟数据 const str = JSON.stringify({ emsisdn: '90104658', campaign_id: '300ca8ab1be8e87250c3' }); // 加密数据 const privateKey = new NodeRsa(this.smRsakey.privateKey); // 私钥 const publicKey = new NodeRsa(this.smRsakey.publicKey); // 公钥 // 验签数据 const sign = privateKey.sign(str, 'base64', 'utf8'); // 私钥签名 const check = publicKey.verify(str, sign, 'utf8', 'base64'); // 公钥验签 console.log('私钥加签:', sign); console.log('公钥验签', check);
三. 加解密数据
publicKey.setOptions({ encryptionScheme: 'pkcs1' }); const encrypted = publicKey.encrypt(str, 'base64'); privateKey.setOptions({ encryptionScheme: 'pkcs1' }); const decrypted = privateKey.decrypt(encrypted, 'utf8'); console.log('加密数据:', encrypted); console.log('解密数据', decrypted);
四. 其他格式密钥生成及加解密demo
// 公私密钥生成 const key = new NodeRsa({ b: 1024 }); // 生成1024位的密钥 key.setOptions({ encryptionScheme: 'pkcs1' }); let publicDer = key.exportKey('public-der'); // 公钥 let privateDer = key.exportKey('pkcs8-private-der'); // 私钥 publicDer = publicDer.toString('base64'); privateDer = privateDer.toString('base64'); console.log('公钥', publicDer); console.log('================'); console.log('私钥', privateDer); // 加解密 const str = JSON.stringify({ phone: '18811126599' }); // 测试数据 const privateKey = new NodeRsa( `-----BEGIN PRIVATE KEY----- ${privateDer} -----END PRIVATE KEY-----`, 'pkcs8-private' ); // 私钥 const publicKey = new NodeRsa( `-----BEGIN PUBLIC KEY----- ${publicDer} -----END PUBLIC KEY-----`, 'pkcs8-public' ); // 公钥 publicKey.setOptions({ encryptionScheme: 'pkcs1' }); const encrypted = publicKey.encrypt(str, 'base64'); // 加密 privateKey.setOptions({ encryptionScheme: 'pkcs1' }); const decrypted = privateKey.decrypt(encrypted, 'utf8'); // 解密 console.log('加密数据' + encrypted); console.log('========================'); console.log('解密数据' + decrypted);
人活着,其实就是一种心态,你若觉得快乐,幸福无处不在;你为自己悲鸣,世界必将灰暗。
阅读排行
最新文章
联系方式
- 邮箱:m18811126599@163.com
- QQ:896956692