美文网首页IT编程iOS技术中心@IT·互联网
加密算法(md5\sha1\RSA验证)

加密算法(md5\sha1\RSA验证)

作者: 艾斯特Esther | 来源:发表于2016-12-30 21:55 被阅读643次

    一、定义:将任意长度的消息压缩到某一固定长度的消息摘要的函数,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方法,在提交时都会以明码的方式进行提交,很不安全

    四、RSA加密

    对称加密:加密解密都用同一个密钥

    非对称加密:发送方用公钥加密数据,接收方用私钥解密数据

    RSA属于公钥加密,非对称加密,速度慢,只能处理少量数据

    五、RSA应用

    1、公钥加密体制:保密性,公钥加密,私钥解密

    2、认证,比如数字签名,即私钥持有者对信息进行签名,验证者可以根据公开的公钥进行验证签名是否正确和有效,即实现了认证性,以及不可抵赖性。

    3、rsa加密/解密

    生成RSA公私钥对 -- 保存公钥 -- 输入信息用公钥加密 -- 传输密文 -- 将密文用rsa公钥解密,获得明文信息

    4、rsa加密/解密/签名/验证

    5、访问和远程访问安全

    6、交易安全

    7、消费者身份保护

    8、登陆和交易认证

    六、程序中应用

    向后台传输数据时,后台生成公钥及私钥,将公钥传给前台,前台将数据放入公钥中,后台通过私钥解密,将数据使用md5/sha1加密放入数据库

    相关文章

      网友评论

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

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