一.什么是算法
- 算法就是高效解决问题的方法
- 一种算法就是用来解决一种特定问题的
比如从10000个从小到大排列且不连续数字里找出8654
普通方法就是用眼瞅,从左到右
运气好瞅一次,运气不好瞅一万次
于是就有了二分法,取出中间的值
左边的值一定比中间的值小
右边的值一定比中间的值大
于是找到8654所用的时间大大缩短
二.hash哈希算法
可以把把文本内容/一串字符计算成一串 hash 值
一串内容---->"hash"算法---->"hash"值
常用算法
-
md5
-
sha512
-
sha256
三.hash值的三大特点
- 传入的内容一样, 采用的 hash 算法一样, 得到的 hash 值也一定一样
- hash 值不可逆推, 不能通过 hash 值反推出明文
- hash 值的长度取决于采用的 hash 算法, 与传入的内容多少无关
四.哈希的应用
- 结合特点 1 和 2 可以用于加密
- 结合特点 1 和 3 可以用于文件完整性校验
在网页上下载文件进度条100%后会卡一小些时间
其实就是在进行"hash"的校验
五.密码加盐
- 客户端向服务端提交密码会在客户端先通过算法加密
- 而服务端存有加密后的密码, 直接比对进行校验
- 但是这还是不够安全的,高技术的黑客可以拿着密文密码进行撞库或者写客户端直接提交截获到的密文
- 于是就出现了密码加盐的概念
⛅密码加盐相当于暗号,只有设置者知道
⛅示范:
正常密码: 123456
加盐密码: 派大星123456海绵宝宝
或者: 章1鱼2哥3蟹4老5板6
⛅加盐之后计算出来的"hash"是完全不一样的
⛅想要撞库的人就必须要猜到使用的算法和加的盐