密碼編譯演算法初識

來源:互聯網
上載者:User

標籤:

 演算法簡介

MD5的全稱是Message-Digest Algorithm 5(資訊-摘要演算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量資訊在用數位簽章軟體簽署私人密匙前被“壓縮”成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數).不管是md2、md4還是md5,它們都需要獲得一個隨機長度的資訊併產生一個128位的資訊摘要.

MD5 演算法的雜湊值大小為 128 位。是一種無法復原的演算法。

演算法特點
  • 兩個不同的明文不會得到相同的輸出值
  • MD5結果不能反推明文,無法復原
安全性

從安全的角度講,MD5的輸出為128位,若採用純強力攻擊尋找一個訊息具有給定Hash值的計算困難性為2128,用每秒可實驗1000000000個訊息的電腦需時1.07×1022年。若採用生日攻擊法,尋找有相同Hash值的兩個訊息需要實驗264個訊息,用每秒可實驗1000000000個訊息的電腦需時585年。

實際應用上,例如我知道‘password’的MD5值是5f4dcc3b5aa765d61d8327deb882cf99,那麼我就用一個資料庫存起來,只要我看到5f4dcc3b5aa765d61d8327deb882cf99,我就知道這個是口令‘password‘使用MD5處理之後的值,原來的口令就是’password‘。MD5在身份鑒別系統中用於口令保護已經是很久了事情了,大部分駭客也有針對這種Hash方式準備相應的資料庫進行反查,這種資料庫稱為彩虹表,MD5的安全性大大減弱。

MD5加密常式
var crypto = require(‘crypto‘);var content = ‘password‘var md5 = crypto.createHash(‘md5‘);md5.update(content);var d = md5.digest(‘hex‘); //MD5值是5f4dcc3b5aa765d61d8327deb882cf99
SHA1演算法演算法簡介

SHA1的全稱是Secure Hash Algorithm(安全雜湊演算法)。加密雜湊函數將任意長度的二進位字串映射為固定長度的小型二進位字串。加密雜湊函數有這樣一個屬性:在計算上不大可能找到散列為相同的值的兩個不同的輸入;也就是說,兩組資料的雜湊值僅在對應的資料也匹配時才會匹配。資料的少量更改會在雜湊值中產生不可預知的大量更改。所以你很難從加密後的文字中找到蛛絲馬跡。

SHA1 演算法的雜湊值大小為 160 位。是一種無法復原的演算法。

SHA1加密常式
var crypto = require(‘crypto‘);var content = ‘password‘var shasum = crypto.createHash(‘sha1‘);shasum.update(content);var d = shasum.digest(‘hex‘);
MD5與sha1的不同點
  • MD5 使用小端排序LITTLE-ENDIAN,sha1 使用大端排序BIG-ENDIAN
  • MD5最後產生的摘要資訊是16個位元組,SHA1是20個位元組。

密碼編譯演算法初識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.