您的位置:首页 > Web前端 > Node.js

Node.js 使用RSA加密/解密

2018-03-15 14:21 1491 查看

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);


↓↓↓部分代码↓↓↓

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: