crypto.js对称加密解密

 由于公司的项目涉及敏感数据问题,需要对数据进行加密,以最大限制防止别人的抓包和数据泄露,除了使用https的安全,前端常用的加密算法对称加密和非对称加密,今天主要说对称加密AES。

1、概况

crypto-js是谷歌开发的纯JavaScript的机密算法类库,可以很方便在前端进行数据加密操作,目前支持的算法有:MD5,SHA-1,SHA-256,AES.....,

2、使用方法

  直接使用:引入crypto-js文件
  依赖安装:npm install crypto-js  引入 import CryptoJS from 'crypto-js'

3、示例


 

上面的代码常用的简单的加密,key是密钥,iv是偏移量,一般是接口返回或者前后事前定义好的,接口明文传输密钥和偏移量容易泄露,可以对密钥和偏移量进行非对称加密。

注意的是密钥的长度,由于对称加密使用AES-128-CBC算法,采用的PKCS7填充的,因此密钥key的长度为16位
 

4、特点

  • 优点:算法公开、计算量小、加密速度快、加密效率高。
  • 缺点:在数据传送前,发送方和接收方必须商定好密钥,然后双方保存好密钥。如果一方的密钥被泄露,那么加密信息也就不安全了
  • 使用场景:本地数据加密、https 通信、网络传输等

六、总结

在业务 http 请求中,AES 的密钥在前端随机生成,从服务器获取 RSA 的公钥,对 AES 的密钥进行非对称加密,把加密后的密钥在请求头中传给服务器,用 AES 对 body 进行加密。服务器收到请求头中的加密后的密钥,用 RSA 的密钥进行解密,得到明文的 AES 密钥,即可对 body 进行解密。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值