加密与解密md5 3des

时间:2022-08-30 06:08:48
/// <summary>
/// MD5加密
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string MD5Encrypt(string s)
{
string strResult = "";
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(s));
for (int i = ; i < bytResult.Length; i++)
{
strResult = strResult + bytResult[i].ToString("x").PadLeft(,'');
}
return strResult;
} /// <summary>
/// 与PHP兼容的MD5加密
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string MD5(string password)
{ byte[] textBytes = System.Text.Encoding.UTF8.GetBytes(password);
try
{
System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash = cryptHandler.ComputeHash(textBytes);
string ret = "";
foreach (byte a in hash)
{
if (a < )
ret += "" + a.ToString("x");
else
ret += a.ToString("x");
}
return ret;
}
catch
{
throw;
} } /// <summary>
/// 16位md5加密,小写
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string MD5_16(string password) {
return MD5(password).ToLower().Substring(, );
}
private static string KEY = "";
private static string IV = ""; /// <summary>
/// 3DES解密
/// </summary>
/// <param name="strText"></param>
/// <param name="key"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static String DESDecrypt(String strText, string key, string iv)
{
System.Security.Cryptography.TripleDESCryptoServiceProvider des3 = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
des3.Key = Convert.FromBase64String(key);
des3.IV = Convert.FromBase64String(iv); string result = string.Empty;
try
{
byte[] buffer = Convert.FromBase64String(strText);
buffer = des3.CreateDecryptor().TransformFinalBlock(buffer, , buffer.Length);
result = System.Text.Encoding.UTF8.GetString(buffer);
}
catch
{ }
return result;
} /// <summary>
/// 3DES加密
/// </summary>
/// <param name="strText">待加密文字</param>
/// <param name="key">KEY</param>
/// <param name="iv">向量</param>
/// <returns></returns>
public static string DESEncrypt(string strText, string key, string iv)
{
System.Security.Cryptography.TripleDESCryptoServiceProvider des3 = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
des3.Key = Convert.FromBase64String(key);
des3.IV = Convert.FromBase64String(iv); string result = string.Empty;
try
{
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strText);
buffer = des3.CreateEncryptor().TransformFinalBlock(buffer, , buffer.Length);
result = Convert.ToBase64String(buffer);
}
catch
{ }
return result;
}