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 ...