C#加密算法

发布时间 2023-12-12 11:39:12作者: 棽犹

一、MD5加密

/// <summary>
/// MD5_16位加密
/// </summary>
public static string GetMD5_16(string value)
{
    string md5Str = string.Empty;
 
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] byData = Encoding.Default.GetBytes(value);
    byte[] result = md5.ComputeHash(byData);
 
    md5Str = BitConverter.ToString(result, 4, 8);
    md5Str = md5Str.Replace("-", "");
 
    return md5Str;
}
/// <summary>
/// MD5_32位加密
/// </summary>
public static string GetMD5_32(string value)
{
    string md5Str = string.Empty;
 
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] byData = Encoding.Default.GetBytes(value);
    byte[] result = md5.ComputeHash(byData);
 
    md5Str = BitConverter.ToString(result);
    md5Str = md5Str.Replace("-", "");
 
    return md5Str;
}
/// <summary>
/// MD5_Base64加密
/// </summary>
public static string GetMD5_Base64(string value)
{
    string md5Str = string.Empty;
 
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] byData = Encoding.Default.GetBytes(value);
    byte[] result = md5.ComputeHash(byData);
 
    md5Str = Convert.ToBase64String(result);
 
    return md5Str;
}

二、AES加密

 public static string AESEncode(string encryptKey, string encryptString)
        {
            byte[] toEncryptArray = Encoding.UTF8.GetBytes(encryptString);
            byte[] seed = Encoding.UTF8.GetBytes(encryptKey);
            using (var aesProvider = new AesCryptoServiceProvider())
            {  
                aesProvider.Key = seed;
                aesProvider.Mode = CipherMode.ECB;
                aesProvider.Padding = PaddingMode.PKCS7;
                ICryptoTransform cTransform = aesProvider.CreateEncryptor();
                Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
                return ToHexString(resultArray);
              //return Convert.ToBase64String(results);
            }

        }
 public static string ToHexString(byte[] buf)
        {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < buf.Length; i++)
            {
                string hex = buf[i].ToString("X2");
                if (hex.Length == 1)
                {
                    hex = '0' + hex;
                }
                sb.Append(hex.ToUpper());
            }
            return sb.ToString();
        }