MD5加密詳解

2021-08-17 21:57:59 字數 3074 閱讀 4402

md5全稱

:message-digest algorithm 5

翻譯過來就是

:資訊

摘要演算法5

比如我的銀行密碼是

"12345"

1.得到的

md5是

:827ccb0eea8a706c4c34a16891f84e7b

2.乙個人擷取到這個密文

,那麼通過撞庫肯定容易撞出

12345.

3.我們要做的就是加鹽

,銀行密碼還是

"12345",

然後我把銀行密碼加上我特定的字串才計算

md5 

所以密碼還是那個密碼

,但是變成求

"12345

密碼加密

987"

的md5值,

然後再得到

md5,

那麼這個

md5起碼可以確認那個資料庫不會有

.我們一般加密都是加密字串或者檔案

,所以我們的工具就有加密字串和檔案的兩種方法,

兩個方法同名

,通過過載完成

1.加密字串

邏輯思維

:2.加密檔案

方法傳入的是檔案物件

: file

以下是詳細**

: publicclassmd5tool

/**

* 邏輯

: *

* 1.

獲取md5物件,

通過"資訊摘要

"獲取例項構造

("md5").

* 2.md5

物件對("

字串的

"位元組形式

"-得到的陣列

)進行摘要

",那麼會返回乙個

"摘要的位元組陣列

" * 3.

摘要位元組陣列中的

"每個二進位制值

"位元組形式

,"轉成十六進製制形式

",然後再把這些值給拼接起來,就是

md5值了

* (ps:

為了便於閱讀

,把多餘的

fff去掉

,並且單個字元前加個

0) *

*/ //

加密字串

publicstaticstring ge***5(string str) throw***ception

md5 += s1;

} returnmd5;

} //

或者//過載,

所以使用者傳入

"字串"或者

"檔案"都可以解決

. public static string md5(string str)

md5 += s1;

} return md5;

} catch (nosuchalgorithmexception e)

} /**

* 處理邏輯

: * 1.

現在傳入的是"檔案

",不是字串

* 2.

所以資訊摘要物件

.進行摘要得到陣列不能像上面獲得

:md5.digest(bytes),

因為不是

str.getbytes

得到bytes

* 3.

其實還是通過

mdt.digest();

獲取到位元組陣列

,但是前期必須要有乙個方法必須是

md5.update(),即"

資訊摘要物件

"要先更新

* 4."

資訊摘要更新

"裡面有

(byte input),

說明是讀取流獲取到的陣列

,所以我們就用這個方法

. * 5.

所以最終的邏輯就是

: *

* 1.

獲取檔案的讀取流

* 2.

不停的讀取流中的"內容

"放入字串

,放一部分就"更新

"一部分

.直到全部完畢

* 3.

然後呼叫

md5.digest();

就會得到有內容的位元組陣列

,剩下的就和上邊一樣了

. */

//加密檔案

publicstaticstring ge***5(file file) throw***ception

byte digest = md5.digest();

for(inti = 0; i

int n = digest[i] & 0x000000ff;

string s = integer.tohexstring(n);

md5 += s;

} returnmd5;

} }

或者/**

* @param urlpath wx

url轉路徑

* @return

返回檔名

*/ public static string getfilename(string urlpath) catch (nosuchalgorithmexception e)

random random = new random();

stringbuilder sb = new stringbuilder("abc");

return sb.tostring();

}拓展

0xfffffff

代表的含義:

上面的方法也可以寫寫成

: for(int i = 0; i < digest.length; i++)

if(s1.length() == 1)

md5 += s1;

}

加密方法 MD5加密

一.md5加密演算法 1.1 md5演算法的定義 md5是雜湊雜湊演算法,對於md5而言,有兩個特性是很重要的,第一 明文資料經過雜湊以後的值是定長的 第二 是任意一段明文資料,經過雜湊以後,其結果必須永遠是不變的。前者的意思是可能存在有兩段明文雜湊以後得到相同的結果。md5是雜湊雜湊演算法,對於m...

檔案md5加密

計算檔案的 md5 值 要計算 md5 值的檔名和路徑 md5 值16進製制字串 public static string md5file string filename 計算檔案的雜湊值 要計算雜湊值的檔名和路徑 演算法 sha1,md5 雜湊值16進製制字串 public static stri...

MD5 密碼加密

asp.net中md5加密碼的方法 page language c contenttype text html import namespace system asp.net中實現對密碼的加密 方法一 public static string encrypt string password,int ...