C#加密解密问题(急)(汉字乱码)
我想将一个文件里面的数据读取出来然后加密存放在另个一个文件里面,但加密是成功了。最后将加密后的数据再解密的时候,所有汉字就全部成了问号或乱码了!!!请各位大哥大姐帮忙看一下代码:
/// <summary>
/// 加密
/// </summary>
/// <param name="strString"></param>
/// <param name="strKey"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string Encrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(Encoding.ASCII.GetBytes(strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESEncrypt = DES.CreateEncryptor();
byte[] Buffer = Encoding.ASCII.GetBytes(strString);
return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
/// <summary>
/// 解密
/// </summary>
/// <param name="strString"></param>
/// <param name="strKey"></param>
/// <returns></returns>
public static string Decrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider DES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
DES.Key = hashMD5.ComputeHash(Encoding.ASCII.GetBytes(strKey));
DES.Mode = CipherMode.ECB;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();
string result = "";
try
{
byte[] Buffer = Convert.FromBase64String(strString);
result = Encoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch (System.Exception e)
{
throw (new System.Exception("null", e));
}
return result;
} --------------------编程问答-------------------- 编码格式问题
BitConverter.ToString
Encoding.UTF8.GetString --------------------编程问答-------------------- ASCII字符集不支持汉字,在你编码时汉字信息已经全丢掉了...
改用Encoding.UTF8或其他支持汉字的字符集编码... --------------------编程问答--------------------
学习了,谢谢。 --------------------编程问答-------------------- Encoding.GetEncoding(936) --------------------编程问答-------------------- --------------------编程问答--------------------
楼上说的对 --------------------编程问答-------------------- 关注,学习一下! --------------------编程问答-------------------- 围观。。。 --------------------编程问答-------------------- 学习了。。。 --------------------编程问答--------------------
正解 --------------------编程问答-------------------- 编码格式问题
BitConverter.ToString
Encoding.UTF8.GetString
补充:.NET技术 , C#