MD5簡介
香蕉视频appMD5(Message Digest Algorithm 5)是一種被廣泛使用的“信息-摘要算法”。“信息-摘要算法”實際上就是一個單項散列函數,數據塊經過單向散列函數得到一個固定長度的散列值,數據塊的簽名就是計算數據塊的散列值,MD5算法散列值為128位。
MD5類表示MD5哈希算法的所有實現均從中繼承的抽象類,該類位于System.Security.Cryptography命名空間下,其ComputeHash方法有以下三種重載形式。
計算指定字節數的哈希值,語法格式如下:
public byte[] ComputeHash(byte[] buffer);
參數說明:buffer指定是要計算其哈希代碼的輸入,返回計算說得的哈希代碼。
public byte[] ComputeHash(Stream inputStream);
參數說明:inputStream指定是要計算其哈希代碼的輸入,返回計算說得的哈希代碼。
public byte[] ComputeHash(byte[] buffer, int offset, int count);
香蕉视频app參數說明:buffer指定是要計算其哈希代碼的輸入,offset指定是字節數據的偏移量,從該位置開始使用數據;count指的是數組中用作數據的字節數;返回計算說得的哈希代碼。
代碼示例:
Console.WriteLine("請輸入需要MD5加密的字符串:"); string input = Console.ReadLine(); //創建對象 MD5 md5 = new MD5CryptoServiceProvider(); //在加密之前我們需要將字符串轉換成字節數組 byte[] buffer = Encoding.Default.GetBytes(input); //開始加密 byte[] md5Buffer = md5.ComputeHash(buffer); //將字節數組轉換成字符串 string strMD5 = Convert.ToBase64String(md5Buffer); //64位加密 //32位加密 string str = string.Empty; for (int i = 0; i < md5Buffer.Length; i++) { //將十進制轉換成16進制 //大寫X:ToString("X2")即轉化為大寫的16進制 //小寫x:ToString("x2")即轉化為小寫的16進制 //2表示輸出兩位,不足的2位的前面補0,如 0x0A,如果沒有2,就只會輸出0xA str += md5Buffer[i].ToString("x2"); //標準md5 } Console.WriteLine("64位加密:" + strMD5); Console.WriteLine("32位加密:" + str); Console.ReadKey();
文章評論