美文网首页
加密算法(md5\sha1)

加密算法(md5\sha1)

作者: followyounger1 | 来源:发表于2017-05-26 13:33 被阅读195次

一、定义:将任意长度的消息压缩到某一固定长度的消息摘要的函数,MD5与SHA1都是Hash算法(散列函数),均属于不可逆算法
二、区别
1、MD5输出128位,SHA1输出是160位
2、MD5比SHA1快
3、安全性:SHA1比MD5更安全
三、MD5、SHA1功能
1、文件校验功能:证明某段信息没有被修改;校验信息是否被更改,又被称为文件指纹
2、消息认证:密码验证,证明你确实知道某个密码
四、MD5、SHA1漏洞
例如我知道'password'的MD5值是5f4dcc3b5aa765d61d8327deb882cf99,那么我就用一个数据库存起来,只要我看到5f4dcc3b5aa765d61d8327deb882cf99,我就知道这个是口令'password‘使用MD5处理之后的值
解决数据库反查办法:针对每一个用户U,生成一个随机值Salt,并且在以后永远保持不变,任意两个用户的盐不能相同。然后当用户设置密码的时候,根据明文密码P,计算MD5(P+Salt)=C。而登录的时候用户也给出明文密码P',服务器拿到之后同样计算MD5(P'+Salt)=C',看C'是否等于C
加盐是为了防止攻击者直接用预先计算好 md5 的字典与密文进行匹配查找明文,因为如果用户密码是字典中的条目,添加随机后缀之后几乎不会出现在字典中,攻击者无从构建彩虹表。
针对每一个用户的盐,比如aaaa,分别根据弱密码明文库,计算MD5(弱密码明文+aaaa)=盐aaaa对应的散列值,然后再用这个密码库去对用户A进行生日攻击。对用户B还得重新根据新的盐bbbb生成密码库
4、数据加密:将用户设置的密码进行md5运算后存储至数据库
5、通讯安全
通讯安全,是对数据校验的一种升级应用。
例子:表单提交时,无论get或post方法,在提交时都会以明码的方式进行提交,很不安全

转自:http://www.jianshu.com/p/ac095511f733

相关文章

网友评论

      本文标题:加密算法(md5\sha1)

      本文链接:https://www.haomeiwen.com/subject/umxxfxtx.html