日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1)背景介紹:

什么是MD5?

MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設(shè)計,于1992年公開,用以取代MD4算法。

密碼散列函數(shù)(Cryptographic hash function),又譯為加密散列函數(shù),是散列函數(shù)的一種。

MD4算法在安全上有大的漏洞,但它對在其后才被開發(fā)出來的好幾種信息安全加密算法的出現(xiàn)卻有著不可忽視的引導作用,比如MD5加密算法.

(2)知識剖析:

主要應用:

2.1一致性驗證

MD5的典型應用是對一段信息(Message)產(chǎn)生信息摘要(Message-Digest),以防止被篡改。比如,在Unix下有很多軟件在下載的時候都有一個文件名相同,文件擴展名為.md5的文件,在這個文件中通常只有一行文本,大致結(jié)構(gòu)如:

MD5 (tanajiya.tar.gz) = 38b8c2c1093dd0fec383a9d9ac940515

MD5將整個文件當作一個大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個唯一的MD5信息摘要。

舉例描述:

我們常常在某些軟件下載站點的某軟件信息中看到其MD5值,它的作用就在于我們可以在下載該軟件后,對下載回來的文件用專門的軟件(如windows MD5 Check等)做一次MD5校驗,以確保我們獲得的文件與該站點提供的文件為同一文件。

具體來說文件的MD5值就像是這個文件的“數(shù)字指紋”。每個文件的MD5值是不同的,如果任何人對文件做了任何改動,其MD5值也就是對應的“數(shù)字指紋”就會發(fā)生變化。比如下載服務器針對一個文件預先提供一個MD5值,用戶下載完該文件后,用我這個算法重新計算下載文件的MD5值,通過比較這兩個值是否相同,就能判斷下載的文件是否出錯,或者說下載的文件是否被篡改了。

利用MD5算法來進行文件校驗的方案被大量應用到軟件下載站、論壇數(shù)據(jù)庫、系統(tǒng)文件安全等方面。

2.2數(shù)字簽名

MD5的典型應用是對一段Message(字節(jié)串)產(chǎn)生fingerprint(指紋),以防止被“篡改”。舉個例子,你將一段話寫在一個叫 readme.txt文件中,并對這個readme.txt產(chǎn)生一個MD5的值并記錄在案,然后你可以傳播這個文件給別人,別人如果修改了文件中的任何內(nèi)容,你對這個文件重新計算MD5時就會發(fā)現(xiàn)(兩個MD5值不相同)。如果再有一個第三方的認證機構(gòu),用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應用。

2.3安全訪問認證

MD5還廣泛用于操作系統(tǒng)的登陸認證上,如Unix、各類BSD系統(tǒng)登錄密碼、數(shù)字簽名等諸多方面。如在Unix系統(tǒng)中用戶的密碼是以MD5(或其它類似的算法)經(jīng)Hash運算后存儲在文件系統(tǒng)中。當用戶登錄的時候,系統(tǒng)把用戶輸入的密碼進行MD5 Hash運算,然后再去和保存在文件系統(tǒng)中的MD5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道。

2.4算法原理

對MD5算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位散列值

(3)常見問題:

(4)解決方案:

(5)編碼實戰(zhàn):

@Test

public void MD5Test(){

String password = “!ytd1129097428”;

String md1 = MD5Util.MD5(password);

String md2 = MD5Util.generate(password);

System.out.println(“加密前:”+password);

System.out.println(“普通MD5加密后:”+md1);

System.out.println(“加鹽MD5加密后:”+md2);

System.out.println(“比較原文和加鹽MD5加密之后是否一致:”+MD5Util.verify(password,md2));

}

輸出結(jié)果:

加密前:!ytd1129097428

普通MD5加密后:add4ff4fb01ace59713390dc5876d5d0

加鹽MD5加密后:96b911880466d91d3244f37bd56c4531967c28d65181f191

比較原文和加鹽MD5加密之后是否一致:true

(6)拓展思考:

關(guān)于撞庫破解:

這是概率極低的破解方法,原理就是:

1.建立一個大型的數(shù)據(jù)庫,把日常的各個語句,通過MD5加密成為密文,不斷的積累大量的句子,放在一個龐大的數(shù)據(jù)庫里.

2.比如一個人拿到了別人的密文,想去查詢真實的密碼,就需要那這個密文去到提供這個數(shù)據(jù)庫的公司網(wǎng)站去查詢.

在線MD5解密: http://www.cmd5.com/

(7)參考文獻:

https://www.zhihu.com/question/22651987

https://blog.csdn.net/dingsai88/article/details/51637977

https://baike.baidu.com/item/MD5

(8)更多討論:

Q1:1.MD5碼不是128位的嗎?為何得出來的亂碼有的是32位的?

A1:128位是指二進制位。二進制太長,所以一般都改寫成16進制,每一位16進制數(shù)可以代替4位二進制數(shù),所以128位二進制數(shù)寫成16進制就變成了128/4=32位。

Q2:2.MD5特點是什么?

A2:1.長度固定:

不管多長的字符串,加密后長度都是一樣長

作用:方便平時信息的統(tǒng)計和管理

2.易計算:

字符串和文件加密的過程是容易的.

作用: 開發(fā)者很容易理解和做出加密工具

3.細微性:

一個文件,不管多大,小到幾k,大到幾G,你只要改變里面某個字符,那么都會導致MD5值改變.

作用:很多軟件和應用在網(wǎng)站提供下載資源,其中包含了對文件的MD5碼,用戶下載后只需要用工具測一下下載好的文件,通過對比就知道該文件是否有過更改變動.

4.不可逆性:

你明明知道密文和加密方式,你卻無法反向計算出原密碼.

作用:基于這個特點,很多安全的加密方式都是用到.大大提高了數(shù)據(jù)的安全性

Q3:3.什么是MD5加鹽?

A3:比如我的銀行密碼是”12345”

1.得到的MD5是:827ccb0eea8a706c4c34a16891f84e7b

2.一個人截取到這個密文,那么通過撞庫肯定容易撞出12345.

3.我們要做的就是加鹽,銀行密碼還是”12345”,然后我把銀行密碼加上我特定的字符串才計算MD5 所以密碼還是那個密碼,但是變成求”12345密碼加密987”的MD5值,然后再得到MD5,那么這個MD5起碼可以確認那個數(shù)據(jù)庫不會有.

分享到:
標簽:MD5
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定