Base64 编码
将二进制数据编码为 ASCII 字符
应用:
小图标或者背景图时,图片转换为 Base64 编码的字符串,写进 HTML 或 CSS 里,减少 HTTP 请求,提升页面加载速度。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="示例图片">
数据简单隐藏:在一些对安全性要求不高的场景下,若要防止数据被轻易识别,可以使用 Base64 编码对数据进行简单隐藏。例如,在 URL 中传递少量信息时进行编码。
MD5哈希
生成 128 位的哈希值
存在安全漏洞,不适合安全敏感,常用于文件完整性校验。
文件完整性:前端下载文件前先获取文件哈希值,下载后再计算哈希值,对比判断文件传输过程中是否损坏,安全性不高。
浏览器存缓存的请求的url或者数据生成哈希值。
SHA-1 哈希
SHA - 1 是一种安全哈希算法,能生成 160 位的哈希值,同样存在安全漏洞,使用时要谨慎。
- 旧系统数据验证:在一些旧的系统中,可能还在使用 SHA - 1 进行数据完整性验证。虽然 SHA - 1 已经被发现存在安全漏洞,但在一些对安全性要求不是特别高的旧系统中仍然可以使用。
- 简单数据标识:在不需要高度安全性的场景下,可以使用 SHA - 1 生成数据的哈希值作为数据的唯一标识。
SHA - 256 哈希
SHA - 256 是 SHA - 2 系列中的一种,能生成 256 位的哈希值,安全性较高,常用于数字签名、密码存储等场景。
- 密码存储:在前端注册或者登录页面中,为了保护用户密码的安全,通常会在前端对用户输入的密码进行 SHA - 256 哈希处理,然后再将哈希值发送到服务器进行验证。这样可以避免在网络传输过程中泄露用户的明文密码。
- 数字签名验证:在一些需要进行数字签名验证的场景中,前端可以使用 SHA - 256 对数据进行哈希处理,然后验证签名的有效性。
AES 加密
AES(高级加密标准)是一种对称加密算法,加密和解密使用相同的密钥,安全性高,常用于数据加密传输。
- 敏感数据传输:当在前端与后端进行数据交互时,如果涉及到敏感数据(如用户的身份证号、银行卡号等),可以使用 AES 加密算法对数据进行加密,然后再将加密后的数据发送到服务器。在服务器端接收到数据后,再使用相同的密钥进行解密。
- 本地存储加密:在前端使用本地存储(如 localStorage 或 sessionStorage)保存敏感数据时,可以使用 AES 对数据进行加密,这样即使数据被非法获取,攻击者也无法轻易解密数据。