MD5加密和RSA加密

1.MD5加密算法

   MD5(單向散列算法)的全稱是Message-Digest Algorithm 5(信息-摘要算法),MD5算法的使用不須要支付任何版權費用。數據庫

  

  MD5的功能:安全

      ①.輸入任意長度的信息,通過處理,輸出爲128位的信息(數字指紋);
      ②.不一樣的輸入獲得的不一樣的結果(惟一性);
      ③.根據128位的輸出結果不可能反推出輸入的信息(不可逆),也就是隻能加密,不能解密; 
服務器

 

  MD5的用途:網絡

      一、防止被篡改
      1)好比發送一個電子文檔,發送前,我先獲得MD5的輸出結果a。而後在對方收到電子文檔後,對方也獲得一個MD5的輸出結果b。若是a與b同樣就表明中途未被篡改。2)好比我提供文件下載,爲了防止不法分子在安裝程序中添加木馬,我能夠在網站上公佈由安裝文件獲得的MD5輸出結果。3)SVN在檢測文件是否在CheckOut後被修改過,也是用到了MD5.

      二、防止直接看到明文
      如今不少網站在數據庫存儲用戶的密碼的時候都是存儲用戶密碼的MD5值。這樣就算不法分子獲得數據庫的用戶密碼的MD5值,也沒法知道用戶的密碼(其實這樣是不安全的,後面我會提到)。(好比在UNIX系統中用戶的密碼就是以MD5(或其它相似的算法)經加密後存儲在文件系統中。當用戶登陸的時候,系統把用戶輸入的密碼計算成MD5值,而後再去和保存在文件系統中的MD5值進行比較,進而肯定輸入的密碼是否正確。經過這樣的步驟,系統在並不知道用戶密碼的明碼的狀況下就能夠肯定用戶登陸系統的合法性。這不但能夠避免用戶的密碼被具備系統管理員權限的用戶知道,並且還在必定程度上增長了密碼被破解的難度。)

      三、防止抵賴(數字簽名):
      這須要一個第三方認證機構。例如A寫了一個文件,認證機構對此文件用MD5算法產生摘要信息並作好記錄。若之後A說這文件不是他寫的,權威機構只需對此文件從新產生摘要信息,而後跟記錄在冊的摘要信息進行比對,相同的話,就證實是A寫的了。這就是所謂的「數字簽名」。
函數

 

  咱們強大的支付寶使用MD5加密,正式由於MD5強大的用途。工具

 

2.RSA加密性能

  ①.RSA是第一個比較完善的公開密鑰算法,它既能用於加密,也能用於數字簽名。網站

    ②.RSA加密是可逆的,一個字符串能夠經rsa加密後,經加密後的字符串傳到對端如服務器上,再進行解密便可。前提是服務器知道解密的私鑰,固然這個私鑰最好不要再網絡傳輸。加密

    ③.RSA以它的三個發明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,這個算法經受住了多年深刻的密碼分析,雖然密碼分析者既不能證實也不可否定RSA的安全性,但這偏偏說明該算法有必定的可信性,目前它已經成爲最流行的公開密鑰算法。
    ④.RSA的安全基於大數分解的難度。其公鑰和私鑰是一對大素數(100到200位十進制數或更大)的函數。從一個公鑰和密文恢復出明文的難度,等價於分解兩個大素數之積(這是公認的數學難題)。

 

  RSA的公鑰、私鑰的組成,以及加密、解密的公式可見於下表:


      

  

  RSA的安全性:

  在RSA密碼應用中,公鑰KU是被公開的,即e和n的數值能夠被第三方竊聽者獲得。破解RSA密碼的問題就是從已知的e和n的數值(n等於pq),想法求出d的數值,這樣就能夠獲得私鑰來破解密文。從上文中的公式:d ≡e-1 (mod((p-1)(q-1)))或de≡1 (mod((p-1)(q-1))) 咱們能夠看出。密碼破解的實質問題是:從Pq的數值,去求出(p-1)和(q-1)。換句話說,只要求出p和q的值,咱們就能求出d的值而獲得私鑰。
   當p和q是一個大素數的時候,從它們的積pq去分解因子p和q,這是一個公認的數學難題。好比當pq大到1024位時,迄今爲止尚未人可以利用任何計算工具去完成分解因子的任務。所以,RSA從提出到如今已近二十年,經歷了各類攻擊的考驗,逐漸爲人們接受,廣泛認爲是目前最優秀的公鑰方案之一。
  然而,雖然RSA的安全性依賴於大數的因子分解,但並無從理論上證實破譯RSA的難度與大數分解難度等價。即RSA的重大缺陷是沒法從理論上把握它的保密性能如何。
  此外,RSA的缺點還有:A)產生密鑰很麻煩,受到素數產生技術的限制,於是難以作到一次一密。B)分組長度太大,爲保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤爲是速度較慢,較對稱密碼算法慢幾個數量級;且隨着大數分解技術的發展,這個長度還在增長,不利於數據格式的標準化。所以,使用RSA只能加密少許數據,大量的數據加密還要靠對稱密碼算法。

 

  我相信這麼強大的加密方式想要破解,幾乎不可能吧。這也是RSA用在支付寶加密中的緣由。

相關文章
相關標籤/搜索