Nodejs 使用node-rsa 加密数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs 使用node-rsa 加密数据相关的知识,希望对你有一定的参考价值。

参考技术A RSA算法原理 阮一峰

1、在node.js中使用rsa算法。首先需要是使用node-rsa包

2、实现加密/解密

客户端需要使用一个jsencrypt.min.js 包利用公钥对数据进行加密

以上运行时可以会出现如下错误

出现如上错误的时候,是服务端的加密方法和jsencrypt的加密方式不一致导致的。jsencrypt加密方式是pkcs1,node-rsa 默认的加密方式是pkcs1_oaep。解决办法如下:

node-rsa

node-rsa

  引用  

var NodeRSA = require(‘node-rsa‘)

  生成一个私钥长度为512的key(同时生成公钥)  

var key = new NodeRSA({b: 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)

  导出公钥、私钥

var private_key = key.exportKey(‘pkcs1‘);
console.log(private_key)
var public_key = key.exportKey(‘pkcs1-public‘);
console.log(public_key)

  导入公钥、私钥

var key2 = new NodeRSA()
key2.importKey(private_key2,‘pkcs1-private‘)
key2.importKey(public_key2, ‘pkcs1-public‘)

 

参考:https://www.npmjs.com/package/node-rsa

以上是关于Nodejs 使用node-rsa 加密数据的主要内容,如果未能解决你的问题,请参考以下文章

node-rsa模块加密遇到的一些坑

nodejs安装node-rsa遇到的问题及解决

node-rsa

节点包“node-rsa”的解密问题

nodeJS之crypto模块公钥加密及解密

NodeJs使用md5对数据加密