uniapp加密解密(RSA,AES),无第三方认证

本文介绍了在uniapp中实现RSA和AES加密解密的方法,用于保护用户数据安全。在未登录状态下,使用公钥加密账号信息;登录后,使用AES加密数据,RSA加密密钥。详细阐述了加密过程及所用库crypto-js和jsencrypt的引入和使用。
摘要由CSDN通过智能技术生成

思路:

未登录:

  1. 生成一对RSA公钥私钥,公钥事先放在前端中,省去获取后端公钥的过程(防止被拦截,无法判断是否是后端传来的公钥)
  2. 用户未登陆时,通过公钥加密账号信息发送至后端,这样即便被窃取也无法得知内容
  3. 后端返回登陆生成的token,refresh token需要进行加密,理想办法是前端生成一对RSA公钥私钥,公钥发给后端加密,但是前端加密一般使用的node-rsa过大,微信小程序基本一引用就超出限制,uniapp压缩代码,分段都没用,所以放弃
  4. 前端将账号密码通过默认规则拼接成新字符串并MD5加密,作为对称加密密钥和账号传给后端,并加密token,refresh token返回。(token刷新问题可查看解决token刷新问题​​​​​​​)

登录后:

  1. 依旧生成一对RSA公钥私钥,公钥事先放在前端中,私钥存后端
  2. 前端通过对称加密AES加密数据,token,refresh token。将密钥通过准备好的RSA公钥加密,添加到请求头部
  3. 后端收到请求通过私钥解密头部,获得密钥解密数据
  4. 后端返回数据通过前端传的密钥AES
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值