Node.js 使用RSA加密/解密

node-rsa

标签(空格分隔): 未分类

第一次使用,不喜勿喷。有什么好的建议请联系博主邮箱 15517072173@163.com

详细内容请查看node-rsa官方文档

  • 纯粹的JavaScript
  • 不需要OpenSSL
  • 生成密钥
  • 支持加密/解密的长消息
  • 签署和验证

Example

var NodeRSA = require('node-rsa');
var key = new NodeRSA({b: 512}); //生成新的512位长度密钥

var text = 'Hello RSA!'; // 加密前数据
var encrypted = key.encrypt(text, 'base64');  // 加密后数据
console.log('encrypted: ', encrypted);
var decrypted = key.decrypt(encrypted, 'utf8'); // 解密后数据
console.log('decrypted: ', decrypted);

安装

npm install node-rsa

要求nodejs> = 0.10.x或io.js> = 1.x

用法

创建实例
var  NodeRSA  = require' node-rsa ') ; 

var  key  = new NodeRSA([ keyData ,[ format ] ] ,[ options ] );
  • keyData - {string|buffer|object}用于生成密钥或以支持的格式之一生成密钥的参数。
  • format - {string}导入密钥的格式。查看有关导出/导入部分格式的更多详细信息。
  • options - {object}- 其他设置。
创建“空”键

var key = new NodeRSA();

生成新的512位长度密钥

var key = new NodeRSA({ b :512 } );

导入/导出密钥
    /*实例*/
    var publicDer = key.exportKey('public');
    var privateDer = key.exportKey('private');
    console.log('公钥:',publicDer);
    console.log('私钥:',privateDer);

    key.importKey(result[1], 'private');

    /*语法*/
    key.importKey(keyData, [format]);
    key.exportKey([format]);
  • keyData - {string|buffer}- 可能是:
    • 键入PEM字符串
    • 包含PEM字符串的缓冲区
    • 包含DER编码数据的缓冲区
    • 对象包含关键组件
  • format - {string}- 用于导出/导入的格式ID。
加密/解密
/*加密*/
key.encrypt(buffer, [encoding], [source_encoding]);
key.encryptPrivate(buffer, [encoding], [source_encoding]); // 使用私钥进行加密 
/*解密*/
key.decrypt(buffer, [encoding]);
key.decryptPublic(buffer, [encoding]); // 使用公钥解密 

/*实例*/
var encryData = key.encryptPrivate(req.body.user_pwd, 'base64','utf8');
    console.log('加密后的数据',encryData);
var decryptData = key.decryptPublic(result[0],'utf8');
    console.log('解密后的数据',decryptData);
  • ↓↓↓部分代码↓↓↓
    node-rsa
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小亮同学丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值