它能夠講字符串或者一個文件流變成一個長度爲32的字符串算法
特色: 加密不可逆數組
MD5存在的意義:ui
寫法:用C#實現MD5加密
準備一個字符串對象
將字符串變成一個字符數組md5
建立MD5對象,調用其ComputeHash方法字符串
獲得一個16個字節的字節數組string
使用SB拼接,將每一個字節用ToString("x2")處理it
---------------------將一個字符串用MD5處理-------------------------coding
string str="abc";
//字節數組
//若是是字符串是英文,用Encoding.UTF8,若是是中文就用Encoding.GetEncoding("gb2312")
bytes[] bs = Encoding.UTF8.GetBytes(str);
//準備MD5對象
MD5 md5 = MD5.Create();
//計算指定字節數組的哈希值
bs=md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
由於對於字節若是用十進制表示爲0-255,用二進制表示爲0000000-11111111,十六進制爲000000-FFFFFF,爲了統一處理,這裏作了統一,用十六進制
for(int i=0;i<bs.Length;i++)
{
sb.Append(bs[i].ToString("x2"));
}
Console.WriteLine(sb.ToString());
Console.ReadKey();
----------------------將一個文件用MD5算法處理-----------------------
MD5 md5=MD5.Create();
string path=@"文件路徑";
//準備好byte數組
byte[]bs;
using(FileStream file= new FileStream(path,FileMode.Open,FileAccess.Read))
{
bs = md5.ComputeHash(file);
}
//後面的代碼和上面處理字符串的代碼同樣用
for(int i=0;i<bs.length;i++)
{
sb.Append(bs[i].ToString("x2"));
}
Console.WriteLine(sb.ToString());
Console.ReadKey();