本人现在急需加密算法,希望提供谢谢。自己下了一个,但是有问题,把编码方式(gb2123、utf-8、ascll等)改了,得出的结果都是一样的。
代码如下:
public string Encrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider(); DES.Key = hashMD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(strKey));
DES.Mode = CipherMode.ECB; ICryptoTransform DESEncrypt = DES.CreateEncryptor(); byte[] Buffer = Encoding.GetEncoding("gb2312").GetBytes(strString);
return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
} /// <summary>
/// 3DES解密
/// </summary>
/// <param name="strString"></param>
/// <param name="strKey"></param>
/// <returns></returns>
public string Decrypt3DES(string strString, string strKey)
{   
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider(); DES.Key = hashMD5.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();
string result = "";
try
{
byte[] Buffer = Convert.FromBase64String(strString);
result = Encoding.GetEncoding("gb2312").GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch(System.Exception e)
{
throw(new System.Exception("null", e)) ;
}
return result ;
}调用:
TextBox2.Text = oTv.Encrypt3DES("abcdefg","54C1DF3BCD9BEFEA19012379D9493208346708F79B46E308");
TextBox1.Text = oTv.Decrypt3DES(TextBox2.Text.ToString(),"54C1DF3BCD9BEFEA19012379D9493208346708F79B46E308");