Keep on going never give up.

Let's Go

C# 学习笔记(48)MD5加密

C#Lonely2019-05-19 20:59:5570次0条

MD5简介

MD5(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);

参数说明: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();




暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!