为什么会有MD5
通常我们上网的时候会遇到一些问题,比如检查文件是否有被篡改;网盘秒传;系统间数据传递防篡改; 用户密码的保存。散列算法可以帮助我们解决上述问题。
MD5是什么
散列算法又称“哈希算法”,俗称“数字指纹”,是用来计算数据的特征的算法。特征:相同的内容一定生成相同的散列值,不同的内容生成相同散列值的概率非常低。任意数据都可以用来计算散列值,字符串也可以用来计算散列值。散列算法有很多种,MD5算法就是其中的一种。散列算法是不可逆的,也就是无法从散列值算出原始数据,但是可以通过碰撞检测等方法,如果两个内容生成的散列值一样,可以得到原来的内容,但是概率非常低。
如何运用MD5
在.Net中String MD5(String s)用来计算字符串的md5值,String MD5(Stream stream)用来计算流的MD5值(算的是内容,和文件名没关系)。比如用来验证密码,根据用户输入的密码,生成一个散列值,然后和数据库中存储的对应的该用户的密码的散列值,如果一样的就登录成功。如果用户设置的密码过短或者过于简单,还可以通过加盐操作,给用户设置的密码加上一些特殊的字符串,生成复杂的散列值,使密码不容易破解。需要注意密码大小写。通过生成MD5值的算法网站的管理员、黑客等都看不到用户的真实密码。