什么是哈希算法
-
基本概念:hash=哈希|散列
-
定义:将任意长度的二进制值串映射为固定长度的二进制串
-
需要满足的条件
- 算法单向
- 对输入敏感,即使修改一个bit,得到的哈希值也大不相同
- 散列冲突很小
- 算法高效,耗时短
应用
1.安全加密
-
常见的安全加密算法MD5,SHA、DES、AES
-
重点关注
- 可以逆向推导原始值 防止数据泄漏
- 散列冲突很小,并不能完全避免 鸽巢原理(也叫抽屉原理)
-
时间和安全间进行取舍
- SHA-256 比 SHA-1 要更复杂、更安全\
2.唯一标识
-
获取唯一标识(信息摘要)\
-
hash相同的元素不一定完全相同,需要全量对比
3.数据校验
- 下载电影,将电影分割成多个块,对每个块进行hash校验
- hash不同的块,一定是不完整的
4.散列函数
- 将数据hash后放入不同的桶中
- 不关注是否可以逆序解开,更关心分布是否均匀
总结
-
针对密码存储,可以通过在password上加salt后加密,增加复杂度
-
使用场景
- 唯一标识
- 校验数据完整性和正确性
- 安全加密
- 散列函数