/// <summary>
/// 3des加密字符串
/// </summary>
/// <param name="a_strString">要加密的字符串 </param>
/// <param name="a_strKey">密钥 </param>
/// <returns>加密后并经base64编码的字符串 </returns>
/// <remarks>静态方法,采用默认ascii编码 </remarks>
public static string Encrypt3DES(string a_strString, string a_strKey)
{
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(a_strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESEncrypt = DES.CreateEncryptor();
byte[] Buffer = ASCIIEncoding.ASCII.GetBytes(a_strString);
return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}//end method
/// <summary>
/// 3des解密字符串
/// </summary>
/// <param name="a_strString">要解密的字符串 </param>
/// <param name="a_strKey">密钥 </param>
/// <returns>解密后的字符串 </returns>
/// <exception cref="">密钥错误 </exception>
/// <remarks>静态方法,采用默认ascii编码 </remarks>
public static string Decrypt3DES(string a_strString, string a_strKey)
{
TripleDESCryptoServiceProvider DES = new
TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(a_strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();
string result = "";
try
{
byte[] Buffer = Convert.FromBase64String(a_strString);
result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch (Exception e)
{
throw (new Exception("不是有效的 base64 字符串", e));
}
return result;
}//end method
/// 3des加密字符串
/// </summary>
/// <param name="a_strString">要加密的字符串 </param>
/// <param name="a_strKey">密钥 </param>
/// <returns>加密后并经base64编码的字符串 </returns>
/// <remarks>静态方法,采用默认ascii编码 </remarks>
public static string Encrypt3DES(string a_strString, string a_strKey)
{
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(a_strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESEncrypt = DES.CreateEncryptor();
byte[] Buffer = ASCIIEncoding.ASCII.GetBytes(a_strString);
return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}//end method
/// <summary>
/// 3des解密字符串
/// </summary>
/// <param name="a_strString">要解密的字符串 </param>
/// <param name="a_strKey">密钥 </param>
/// <returns>解密后的字符串 </returns>
/// <exception cref="">密钥错误 </exception>
/// <remarks>静态方法,采用默认ascii编码 </remarks>
public static string Decrypt3DES(string a_strString, string a_strKey)
{
TripleDESCryptoServiceProvider DES = new
TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(a_strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();
string result = "";
try
{
byte[] Buffer = Convert.FromBase64String(a_strString);
result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch (Exception e)
{
throw (new Exception("不是有效的 base64 字符串", e));
}
return result;
}//end method

0 评论:
发表评论