node-rsa非对称加密使用

最近做个网站,数据传输需要加密,github上翻了好久找到了node-rsa,下面是使用过程。其他详细配置请移步作者github仓库。

下载,引入。

http://web.chacuo.net/netrsakeypair 去里面生成一对密钥。存起来。

客户端使用私钥加密传输数据。

let NodeRSA = require('node-rsa');  //引入包

var key = new NodeRSA('-----BEGIN PRIVATE KEY-----\n'+

'MIIBUwIBAD*****我的密钥中间内容在此省略******************************4T3ixIYmXV\n'+

'lE2w4ToVD*****我的密钥中间内容在此省略******************************CPWT\n'+

'4mRIKQI*****我的密钥中间内容在此省略******************************QVNewK\n'+

'aKdlPL*****我的密钥中间内容在此省略******************************tE5e5UG+Byh\n'+

'kaEcKrn*****我的密钥中间内容在此省略******************************oY\n'+

'mQIgMqI*****我的密钥中间内容在此省略******************************bamOJKFn\n'+

'bb6oNlScHk*****我的密钥中间内容在此省略******************************91+xgpo2d\n'+

'afyOciqf/g==\n'+

'-----END PRIVATE KEY-----'

);//利用私钥创建NodeRSA对象。

let encryptPassword = key.encryptPrivate("要加密的字符串",'base64');  //用base64,因为解密只支持base64和buffer

encryptPassword= encryptPassword.replace(/\+/g,"~"); //base64里面有 + / = 不利于ajax数据传输,替换掉

encryptPassword= encryptPassword.replace(/\//g,',');

encryptPassword = encryptPassword.replace(/=/g,'$');

 ajax数据传输到服务端

var NodeRSA = require('node-rsa');

var key = new NodeRSA('-----BEGIN PUBLIC KEY-----\n'+

'MFwwDQ*****我的密钥中间内容在此省略******************************E6FQyA+lbm\n'+

'ezL2drqQvU********我的密钥中间内容在此省略******************SCkCAwEAAQ==\n'+

'-----END PUBLIC KEY-----'

);//用公钥创建NodeRSA对象。

pw = pw.replace(/~/g,"+"); //pw是传输的加密数据,先吧客户端传递过来的数据还原

pw = pw.replace(/,/g,"/");

pw = pw.replace(/$/g,"=");

var decryptedPassword =  key.decryptPublic(pw,'utf8'); // 解密成utf-8格式,完成。

你可能感兴趣的:(node-rsa非对称加密使用)