最近做公司的项⽬,要求实现在数据传输过程中进⾏加密。本来准备要⽤HTTPS进⾏传输 。由于项⽬采⽤的是Vue.js框架。结合http是⽆状态的会话,需要把⽤户的⼝令保存到本地。历史遗留原因,并没有把⼝令存储到cookie中,保存在SessionStorage中。暴露了Token,很容易被其他⼈拿⾛Token实现跨站攻击。 公司要求每次传输数据要随机变化。不能暴露Token。即使拿到Token也⽆法对⽹站进⾏攻击。F12不能看到传输的明⽂数据。
所以结合后端 采⽤AES加密。
使⽤crypto.js 在axios 的transformRequest中对请求对象进⾏Aes加密。 此处需要注意,因为有些情况是不需要加密的,所以返回的data应该为string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams中的⼀种。但是此处应该要注意的是 string类型要⽤QueryString.stringify⽽不是JSON.Stringify否则会在请求的数据后⾯增加 ⼀个'':';
对于服务器返回的数据,要⽤JSON.parse解析⽽不是⽤querystring.parse解析,否则解析的是简单对象外加空格回车。这是两个坑。
甘蔗去皮机
下⾯贴上代码:
铌高
jumper2
水气分离器气瓶水压试验顶部引⼊crypto-js
加密解密的具体实现。其中zbzbxConfig为系统的定义的配置⽂件