什么叫明文,什么叫密文,为何不容许在数据库里明文保存密码?

什么叫明文,什么叫密文,为何不容许在数据库里明文保存密码?


1.背景介绍


            1.1    什么叫密码
            密码是一种用来混淆的技术,使用者但愿将正常的(可识别的)信息转变为没法识别的信息。但这种没法识别的信息部分是能够再加工并恢复和破解的。密码在中文里是“口令”(password)的通称。  算法


2.知识剖析

           2.1 什么是明文密码?   
            “明文密码”(Cleartext Password),即传输或保存为明文的密码。具体是指保存密码或网络传送密码的时候,用的是没有隐藏、直接显示的明文字符,而不是通过加密后的密文。如密码为123,那么密文密码是***,明文密码则是123。从信息安全的角度出发,任何网络服务都不该该保存或发送明文密码。

            2.2    什么是密文密码? ? 
            
                密文是加了密的的文字,明文是加密以前的文字。密文是对明文进行加密后的报文。数据库

             2.3    为何不容许在数据库里明文保存密码?
             用明文保存密码有很大的信息安全隐患。
通常数据库里还存有用户的姓名、手机号、用户名等信息,一旦数据库发生泄漏,再加上用户的明文密码,攻击者就能够用用户名和密码去其余网站尝试登录(由于每每用户会将多个网站的密码根据习惯设成同样的),一旦登录成功,就会形成很严重的后果。
            
            2.4    通常使用的加密方式有哪些?:
         2.4.1.MD5加密(1)
              MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,
              并对这个readme.txt产生一个MD5的值并记录在案,而后你能够传播这个文件给别人,别人若是修改了文件中的任何内容,你对这个文件从新
              计算MD5时就会发现(两个MD5值不相同)。若是再有一个第三方的认证机构,用MD5还能够防止文件做者的“抵赖”,这就是所谓的数字签名应用。
              
          2.4.通常使用的加密方式有哪些?
            2.4.1.MD5加密(2)
            MD5算法具备如下特色:
            一、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
            二、容易计算:从原数据计算出MD5值很容易。
            三、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所获得的MD5值都有很大区别。
            四、强抗碰撞:已知原数据和其MD5值,想找到一个具备相同MD5值的数据(即伪造数据)是很是困难的。
           
         2.4.通常使用的加密方式有哪些?
            2.4.2.DES加密
            DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。混淆是使密文的
            统计特性与密钥的取值之间的关系尽量复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来讲是没法利用的。扩散的做用就是将
            每一位明文的影响尽量迅速地做用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,而且使每一位密钥的影响尽量迅速
            地扩展到较多的密文位中,以防对密钥进行逐段破译。
            
          2.4.通常使用的加密方式有哪些?
            2.4.3.RSA加密
            它一般是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另外一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提升保密强度,
            RSA密钥至少为500位长,通常推荐使用1024位。这就使加密的计算量很大。为减小计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法
            相结合的方式,即信息采用改进的DES或IDEA密钥加密,而后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不一样的密钥解密并可核对信息
            摘要。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操做。RSA是被研究得最普遍的公钥算法,从提出到现今的三十多年里,
            经历了各类攻击的考验,逐渐为人们接受,截止2017年被广泛认为是最优秀的公钥方案之一。
            
           2.4.通常使用的加密方式有哪些?
            2.4.4.对称加密算法
            加密者和解密者使用相同的密码,这种方式的优势是加解密效率高,缺点是安全系统偏低,由于中除须要传递密钥,因此有被截获的风险。
            传递密钥的过程常须要和对称加密方式配合使用,如上所述。
            常见的这种方式有 DES,AES.
            优势:算法公开、计算量小、加密速度快、加密效率高、可逆
            缺点:双方使用相同钥匙,安全性得不到保证
            现状:对称加密的速度比公钥加密快不少,在不少场合都须要对称加密
            
            2.4.通常使用的加密方式有哪些?
            2.4.5.RSA加密(非对称加密算法)(1)
            非对称加密算法须要两个密钥:公开密钥(publickey)和私有密钥(privatekey)
            非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
            公开密钥与私有密钥是一对,若是用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;若是用私有密钥对数据进行加密,
            那么只有用对应的公开密钥才能解密
            
            2.4.通常使用的加密方式有哪些?
            2.4.5.RSA加密(非对称加密算法)(2)
            特色:
            非对称密码体制的特色:算法强度复杂、安全性依赖于算法与密钥可是因为其算法复杂,而使得加密解密速度没有对称加密解密的速度快    
            对称密码体制中只有一种密钥,而且是非公开的,若是要解密就得让对方知道密钥。因此保证其安全性就是保证密钥的安全,
            而非对称密钥体制有两种密钥,其中一个是公开的,这样就能够不须要像对称密码那样传输对方的密钥了
            
            2.5.MD5加密的弊端?如何解决?
            由以前MD5的实现方法可知,任何一个相同文件、字符串生成的MD5值都是同样的。好比"123456"的MD5值任什么时候候生成的都是
            "e10adc3949ba59abbe56e057f20f883e"而且,随着如今计算机技术的不断发展,能够经过MD5值去逆推到原来的明文密码。所以
            就须要在加密时在给它一个随机生成的值,掺到原密码中进行加密。这个值就叫盐值。安全

 

3.常见问题


            如何对密码进行MD5加盐加密服务器


       
4.解决方案


            见编码实战网络


 5.编码实战
       


6.扩展思考


            6.1    明文密码泄露的危害?
            
               可能会被不法分子经过撞库的方式去其余网站获取更多的我的信息。
                
                  2014年12月25日,12306网站用户信息在互联网上疯传。对此,12306官方网站称,网上泄露的用户信息系经其余网站或渠道流出。据悉,这次泄露的用户数据很多于131,653条。该批数据基本确认为黑客经过“撞库攻击”所得到。
                
      
            6.2 如何避免出现这种状况?
            
               一方面,网站运营者要保护好本身的数据库,而且在保存用户关键信息时要进行加密保存。
            另外一方面,咱们在注册不一样网站时注意设置不一样的密码,尽可能不要出现一个帐号密码就能登陆所注册的全部网站的状况。
       性能

            6.3.密码为何不能用Hash存储? 
            单向Hash算法(MD5, SHA1, SHA256等)能够保证管理员几乎不能恢复原始密码。但它有两个特色:
            1)从同一个密码进行单向哈希,获得的老是惟一肯定的摘要。
            2)计算速度快。随着技术进步,尤为是显卡在高性能计算中的普及,一秒钟可以完成数十亿次单向哈希计算。
            网站


7.参考文献


            CSDN
            百度百科
       编码

      
8.更多讨论

 

           8.1    明文密码泄露的危害?
            
               可能会被不法分子经过撞库的方式去其余网站获取更多的我的信息。
                
                  2014年12月25日,12306网站用户信息在互联网上疯传。对此,12306官方网站称,网上泄露的用户信息系经其余网站或渠道流出。据悉,这次泄露的用户数据很多于131,653条。该批数据基本确认为黑客经过“撞库攻击”所得到。
                
      
            8.2 如何避免出现这种状况?
            
               一方面,网站运营者要保护好本身的数据库,而且在保存用户关键信息时要进行加密保存。
            另外一方面,咱们在注册不一样网站时注意设置不一样的密码,尽可能不要出现一个帐号密码就能登陆所注册的全部网站的状况。
       加密

            8.3.密码为何不能用Hash存储? 
            单向Hash算法(MD5, SHA1, SHA256等)能够保证管理员几乎不能恢复原始密码。但它有两个特色:
            1)从同一个密码进行单向哈希,获得的老是惟一肯定的摘要。
            2)计算速度快。随着技术进步,尤为是显卡在高性能计算中的普及,一秒钟可以完成数十亿次单向哈希计算。设计

            今天的分享就到这里啦,欢迎你们提问和探讨!