香蕉视频app

香蕉视频appKeep on going never give up.

Let's Go

C# 學習筆記(48)MD5加密

C#Lonely2019-05-19 20:59:5594次0條

MD5簡介

MD5(Message Digest Algorithm 5)是一種被廣泛使用的“信息-摘要算法”。“信息-摘要算法”實際上就是一個單項散列函數,數據塊經過單向散列函數得到一個固定長度的散列值,數據塊的簽名就是計算數據塊的散列值,MD5算法散列值為128位。

香蕉视频appMD5類表示MD5哈希算法的所有實現均從中繼承的抽象類,該類位于System.Security.Cryptography命名空間下,其ComputeHash方法有以下三種重載形式。

香蕉视频app計算指定字節數的哈希值,語法格式如下:

public byte[] ComputeHash(byte[] buffer);

參數說明:buffer指定是要計算其哈希代碼的輸入,返回計算說得的哈希代碼。

public byte[] ComputeHash(Stream inputStream);

香蕉视频app參數說明:inputStream指定是要計算其哈希代碼的輸入,返回計算說得的哈希代碼。

public byte[] ComputeHash(byte[] buffer, int offset, int count);

參數說明: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();




暗錨,解決錨點偏移

文章評論

    嘿,來試試登錄吧!