加密源码是在百-度经验上找的 C# DES解密 和 C# DES加密
在上一章的“C#如何实现DES加密算法”中建立的工程的基础上(地址为:http://jingyan.baidu.com/article/c910274bc6f50bcd371d2d10.html),在类文件EncryptDES.cs中添加如下方法:
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
//rgbIV与rgbKey可以不一样,这里只是为了简便,读者可以自行修改
byte[] rgbIV = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch (Exception ex)
{
return decryptString;
}
} 双击该按钮,进入代码编辑界面,添加如下代码,如图。
string en = "C#如何实现DES加密算法";
string result = EncryptDES.strEncryptDES(en, "hello,I am bianyuanhuanghun");
MessageBox.Show(result);
现在的问题是能解密 但测试后发现前3个中文字(6个字符)会出现乱码 后边都正常
情况如下图
加密密码:codeexam
密文:RuZFkVLbyIdjn02U0zCeuNod4enfBR4rjJawFgPdEC74q56fmE9kXU9umGF6MGVTr9tq5d5JpRRMU+D2M3gxbOgfJnCHeDKD
解密:}DJ1的形式中,效力仅次于宪法的是( )。
正确解密:下列法的形式中,效力仅次于宪法的是( )。帮忙看看乱码是怎么回事啊!
在上一章的“C#如何实现DES加密算法”中建立的工程的基础上(地址为:http://jingyan.baidu.com/article/c910274bc6f50bcd371d2d10.html),在类文件EncryptDES.cs中添加如下方法:
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
//rgbIV与rgbKey可以不一样,这里只是为了简便,读者可以自行修改
byte[] rgbIV = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch (Exception ex)
{
return decryptString;
}
} 双击该按钮,进入代码编辑界面,添加如下代码,如图。
string en = "C#如何实现DES加密算法";
string result = EncryptDES.strEncryptDES(en, "hello,I am bianyuanhuanghun");
MessageBox.Show(result);
现在的问题是能解密 但测试后发现前3个中文字(6个字符)会出现乱码 后边都正常
情况如下图
加密密码:codeexam
密文:RuZFkVLbyIdjn02U0zCeuNod4enfBR4rjJawFgPdEC74q56fmE9kXU9umGF6MGVTr9tq5d5JpRRMU+D2M3gxbOgfJnCHeDKD
解密:}DJ1的形式中,效力仅次于宪法的是( )。
正确解密:下列法的形式中,效力仅次于宪法的是( )。帮忙看看乱码是怎么回事啊!
//--triple des ecb encrypt
//--key = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
//--plain = 00 00 00 00 00 00 00 00 cipher = 8C A6 4D E9 C1 B1 23 A7
//
//-----Final result --- 8C A6 4D E9 C1 B1 23 A7
//