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;
}