Node-RSA 非对称加密使用

Node-RSA 非对称加密使用

关于非对称加密算法

如何用通俗易懂的话来解释非对称加密?

Node服务端使用非对称加密算法

  1. 首先引入 node-rsa
1
npm install node-rsa --save
  1. 生成私钥和公钥
1
2
3
const key = new NodeRSA({ b: 512 });
const publicKey = key.exportKey('public');
const privateKey = key.exportKey();
  1. 获取私钥和公钥
1
2
const publicKey = key.exportKey('public');
const privateKey = key.exportKey('private');
  1. 公钥加密私钥解密 — 用于加解密
1
2
const encryptPublic = key.encrypt(data, 'base64', 'utf8');
const decryptPrivate = key.decrypt(encryptPublic, 'json');
  • data 就是需要加密的明文数据,可以是 string, Buffer,也可以是 Array/ObjectArray/Object 首先会自动编码成 json 字符串
  • base64 就是需要加密的结果以什么格式显示,这里选择以base64显示,默认为:buffer
  • utf8 数据源是什么编码格式
  • json 解密之后以什么格式出现,这里选择json格式
  1. 私钥加密公钥解密 — 用于签名
1
2
const encryptPrivate = key.encryptPrivate(data, 'base64', 'utf8');
const decryptPublic = key.decryptPublic(encryptPrivate, 'json');
  • data 就是需要加密的明文数据,可以是 string, Buffer,也可以是 Array/ObjectArray/Object 首先会自动编码成 json 字符串
  • base64 就是需要加密的结果以什么格式显示,这里选择以base64显示,默认为:buffer
  • utf8 数据源是什么编码格式
  • json 解密之后以什么格式出现,这里选择json格式
  1. 返回结果
1
ctx.body = { privateKey, publicKey, publicData: data, encryptPublic, decryptPrivate, encryptPrivate, decryptPublic };

如果下面不存在代码块时,请检查网络是否可以访问 github 的 gist ,无法访问 gist 时,可以点击此处访问 gitee 的代码块

-------文章到此结束  感谢您的阅读-------