什麼叫明文,什麼叫密文,爲何不容許在數據庫裏明文保存密碼?

什麼叫明文,什麼叫密文,爲何不容許在數據庫裏明文保存密碼?


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)計算速度快。隨着技術進步,尤爲是顯卡在高性能計算中的普及,一秒鐘可以完成數十億次單向哈希計算。設計

            今天的分享就到這裏啦,歡迎你們提問和探討!