咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

MD5加密算(suàn)法

發表日期:2016-09-02    文章編輯:重慶網站(zhàn)建設    浏覽次數(shù):5    标簽:

  MD5算(suàn)法是一種非常優秀的加密算(suàn)法。 MD5加密算(suàn)法特點靈活性、不可(kě)恢複性。
  介紹MD5加密算(suàn)法基本情況 MD5的全稱是Message-Digest Algorithm 590年代初由MIT的計(jì)算(suàn)機科學實驗室和(hé)RSA Data Security Inc發明(míng)經MD2MD3和(hé)MD4發展而來(lái)。
  Message-Digest泛指字節串(Message)Hash變換就是把一個(gè)任意長度的字節變換成一定長的大(dà)整數(shù)。請(qǐng)注意我使用了"字節串"而不是"字符串"這個(gè)詞是因為(wèi)這種變換隻與字節的值有(yǒu)關與字符集或編碼方式無關。
  MD5将任意長度的"字節串"變換成一個(gè)128bit的大(dà)整數(shù)并且它是一個(gè)不可(kě)逆的字符串變換算(suàn)法換句話(huà)說就是即使你(nǐ)看到源程序和(hé)算(suàn)法描述也無法将一個(gè)MD5的值變換回原始的字符串從數(shù)學原理(lǐ)上(shàng)說是因為(wèi)原始的字符串有(yǒu)無窮多(duō)個(gè)這有(yǒu)點象不存在反函數(shù)的數(shù)學函數(shù)。
  MD5的典型應用是對一段Message(字節串)産生(shēng)fingerprint(指紋)以防止被"篡改"。舉個(gè)例子你(nǐ)将一段話(huà)寫在一個(gè)叫readme.txt文件中并對這個(gè)readme.txt産生(shēng)一個(gè)MD5的值并記錄在案然後你(nǐ)可(kě)以傳播這個(gè)文件給别人(rén)别人(rén)如果修改了文件中的任何內(nèi)容你(nǐ)對這個(gè)文件重新計(jì)算(suàn)MD5時(shí)就會(huì)發現。
  如果再有(yǒu)一個(gè)第三方的認證機構用MD5還(hái)可(kě)以防止文件作(zuò)者的"抵賴"這就是所謂的數(shù)字簽名應用。
  MD5還(hái)廣泛用于加密和(hé)解密技(jì)術(shù)上(shàng)在很(hěn)多(duō)操作(zuò)系統中用戶的密碼是以MD5(或類似的其它算(suàn)法)的方式保存的用戶Login的時(shí)候系統是把用戶輸入的密碼計(jì)算(suàn)成MD5值然後再去和(hé)系統中保存的MD5值進行(xíng)比較而系統并不"知道(dào)"用戶的密碼是什麽。
  一些(xiē)黑(hēi)客破獲這種密碼的方法是一種被稱為(wèi)"跑字典"的方法。有(yǒu)兩種方法得(de)到字典一種是日常搜集的用做(zuò)密碼的字符串表另一種是用排列組合方法生(shēng)成的先用MD5程序計(jì)算(suàn)出這些(xiē)字典項的MD5值然後再用目标的MD5值在這個(gè)字典中檢索。
  即使假設密碼的最大(dà)長度為(wèi)8同時(shí)密碼隻能是字母和(hé)數(shù)字共26+26+10=62個(gè)字符排列組合出的字典的項數(shù)則是P(62,1)+P(62,2).+P(62,8)那(nà)也已經是一個(gè)很(hěn)天文的數(shù)字了存儲這個(gè)字典就需要TB級的磁盤組而且這種方法還(hái)有(yǒu)一個(gè)前提就是能獲得(de)目标賬戶的密碼MD5值的情況下才可(kě)以。
  在很(hěn)多(duō)電(diàn)子商務和(hé)社區(qū)應用中管理(lǐ)用戶的Account是一種最常用的基本功能盡管很(hěn)多(duō)Application Server提供了這些(xiē)基本組件但(dàn)很(hěn)多(duō)應用開(kāi)發者為(wèi)了管理(lǐ)的更大(dà)的靈活性還(hái)是喜歡采用關系數(shù)據庫來(lái)管理(lǐ)用戶懶惰的做(zuò)法是用戶的密碼往往使用明(míng)文或簡單的變換後直接保存在數(shù)據庫中因此這些(xiē)用戶的密碼對軟件開(kāi)發者或系統管理(lǐ)員來(lái)說可(kě)以說毫無保密可(kě)言本文的目的是介紹MD5Java Bean的實現同時(shí)給出用MD5來(lái)處理(lǐ)用戶的Account密碼的例子這種方法使得(de)管理(lǐ)員和(hé)程序設計(jì)者都無法看到用戶的密碼盡管他們可(kě)以初始化它們。但(dàn)重要的一點是對于用戶密碼設置習慣的保護。

  本文由重慶網站(zhàn)建設-重慶建網站(zhàn)-中技(jì)互聯:www.zjcoo.com

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博