MD5加密
使用MD5算法对字符串进行16位加密
``` csharp
/// <summary>
/// 使用MD5算法对字符串进行16位加密
/// </summary>
/// <param name="_encryptContent">需要加密的字符串</param>
/// <returns>加密后的字符串</returns>
public static string EncryptMD5_16(this string _encryptContent)
{
var md5 = new MD5CryptoServiceProvider();
// 计算MD5哈希值,返回一个字节数组
byte[] hash = md5.ComputeHash(Encoding.Default.GetBytes(_encryptContent));
// 取字节数组的第5到第12个字节(共8个字节),并将它们转换为一个十六进制字符串
string t2 = BitConverter.ToString(hash, 4, 8);
// 去掉字符串中的所有“-”字符
t2 = t2.Replace("-", "");
return t2;
}
### 使用MD5算法对字符串进行32位加密
```csharp
``` csharp
/// <summary>
/// 使用MD5算法对字符串进行32位加密
/// </summary>
/// <param name="_encryptContent">需要加密的字符串</param>
/// <returns>加密后的字符串</returns>
public static string EncryptMD5_32(this string _encryptContent)
{
// 将字符串转换为UTF8编码的字节数组
byte[] bytes = Encoding.UTF8.GetBytes(_encryptContent);
// 计算MD5哈希值,返回一个字节数组
byte[] hash = MD5.Create().ComputeHash(bytes);
// 将字节数组转换为十六进制字符串
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
### 使用MD5算法对字符串进行64位加密
```csharp
``` csharp
/// <summary>
/// 使用MD5算法对字符串进行64位加密
/// </summary>
/// <param name="_encryptContent">需要加密的字符串</param>
/// <returns>加密后的字符串</returns>
public static string EncryptMD5_64(this string _encryptContent)
{
// 将字符串转换为UTF8编码的字节数组
byte[] bytes = Encoding.UTF8.GetBytes(_encryptContent);
// 计算MD5哈希值,返回一个字节数组
byte[] hash = MD5.Create().ComputeHash(bytes);
// 将字节数组转换为Base64字符串
return Convert.ToBase64String(hash);
}
## 字符串的编码与解码
### 对字符串进行UrlEncode编码
```csharp
``` csharp
/// <summary>
/// 对字符串进行UrlEncode编码
/// </summary>
/// <param name="text">需要编码的字符串</param>
/// <param name="encod">编码格式</param>
/// <param name="cap">是否输出大写字母</param>
/// <returns>UrlEncode编码后的字符串</returns>
public static string UrlEncode(string text, Encoding encod, bool cap = true)
{
// 使用指定的编码将字符串转换为字节数组
byte[] bytes = encod.GetBytes(text);
StringBuilder builder = new StringBuilder();
// 将字节数组中的每个字节都进行UrlEncode编码,并将结果拼接成一个字符串
foreach (byte b in bytes)
{
// 如果cap参数为true,则将字母转换为大写形式
if (cap)
{
builder.Append(Uri.HexEscape(b).ToUpper());
}
else
{
builder.Append(Uri.HexEscape(b));
}
}
return builder.ToString();
}
### 对字符进行UrlDecode解码
```csharp
``` csharp
/// <summary>
/// 对字符进行UrlDecode解码
/// Encoding转string格式
/// Sample:
/// using System.Text;
/// string dncodedStr = UrlDecode(wait4DecodeStr, Encoding.UTF8);
/// </summary>
/// <param name="encodString"></param>
/// <param name="encod">编码格式</param>
/// <returns></returns>
public static string UrlDecode(string encodString, Encoding encod)
{
string text = HttpUtility.UrlDecode(encodString, encod);
return text;
}