前端加密安全
核心使用了前端js库
CryptoJS
加密流程
加密场景和加密方式
前端加密场景有哪些?
- 请求接口
- 路由跳转携带参数
常用加密方式
- base64
- Sha256
- AES
- ...
简单的Base64加密使用场景
浏览器url地址栏
区别&缺陷
Base64优缺点(Base64本质是一种编码方式,而非加密方式)
- 优点
- 使用简单,javascript语言支持
- 对称性加密(加密之后可以解密)
- 缺点
- 加解密会改变基础类型(Number 变成String),仅支持ASCII
- 编码后的大小会比原文件大小大1/3
- 加密单一,内容相同的密文加密解密对一样的
- 会造成文件体积增加,影响文件的加载速度
- 兼容性的问题,ie8以前的浏览器不支持
Sha256加密简介
- 比较流行,也是最强的加密函数之一
- 非对称性加密(加密之后,无法通过密文解密)
- 应用场景:比特币等加密货币
加密、解密过程演示
AES加密简介
加密、解密过程演示
前端加密步骤
- 获取当前时间戳
- 拼接密钥字符串(eg:token + 时间戳)
- 哈希算法对拼接后的字符串进行哈希
- 借助sha256生成非对称性加密
- 生成结果64位
- 取哈希结果前32位生成完整的密钥(utf8格式)
- 使用前端js库CryptoJS生成密文