使用RSA实现前端公钥加密后端私钥解密

项目中在用户登录时需要进行用户名和密码加密,这里选用了RSA非对称加密的方式.

  • 公钥私钥:OpenSSL的公钥私钥(Node crypto模块限制)
  • 前端: jsencrypt库加密
  • 后端: Node crypto模块

使用openssl生成公钥私钥

linux生成公钥私钥命令:

genrsa -out rsa_private_key.pem 1024 // 生成1024位私钥
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt // 把RSA私钥转换成PKCS8格式
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem // 生成对应公钥

这里已经生成了公钥和私钥,公钥私钥的使用可以分为两种方式

  1. 在使用时使用fs.readFileSync()来读取
  2. 直接将公私钥拷贝出来放到配置文件中(私钥要保证正确的换行格式,否则crypto不能正确的使用私钥,可以在每行末尾添加\n\来确保格式正确)

前端使用jsencrypt库加密

这个库可以使用模块加载的方式使用,下面的代码也是使用这种方式,当然也可以在页面中通过

你可能感兴趣的:(rsa,crypto,node.js,加密)