我也不是专业的,请带着思考阅读.
还有就是,文中的白话,别杠.
关键字:
不可逆、hash、散列
0.背景
接下来讨论的几节内容,是由下面这张图扩展开来.
1.散列
散列就是不可逆算法的实现....在计算机的世界里,每个文件也可以有自己的一个散列值,字符串、视频、语音等等都可以转换成二进制的数据,他们都能拥有自己的散列值,每个文件的散列值同样可以是独一无二的....散列是一种不可逆运算,通过输入x,通过一定的函数运算,可以得到一个结果y.当x固定时,输出的y也总是固定的.
日常生活中,像什么hash、不可逆运算等等,你都可以简单的理解为散列....不同的散列算法,得出的散列值长度是不一样的,如MD5为128bit.
2.2 雪崩效应
稍微修改一点,哪怕是小小的1bit,得出的hash值都是截然不同的....那玩意数据库里的密码竟然存的是HASH值?
由于不可逆的特性,你破解数据库拿到数据后,看到一堆hash值,也很难猜到真实的用户密码.
那我存成hash值,怎么知道用户输入的明文密码对不对啊?