private static string _text;
/// <summary>
/// 要加解密的字符串
/// </summary>
public static string Text
{
set { CryptoString1._text = value; }
}
private static string _key;
/// <summary>
/// 加密的密钥
/// </summary>
public static string Key
{
set { CryptoString1._key = value; }
}
/// <summary>
/// DES加密
/// </summary>
/// <returns></returns>
public static string DESEncrypt0String()
{
//将密钥Key转换为字节数组
byte[] iKey = Encoding.Default.GetBytes(_key);
//将传递的字符创转化为字节数组
byte[] iText = Encoding.Default.GetBytes(_text);
//创建一个内存流
MemoryStream ms = new MemoryStream();
//创建一个加密对象实例
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = iKey;
des.Mode = CipherMode.ECB;//选择加密模式为ECB模式
//使用密钥Key创建一个加密流
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
//将字节数组写入加密流并清空缓冲区
cs.Write(iText, 0, iText.Length);
cs.FlushFinalBlock();
//得到加密后的字节数组
byte[] EncryptString = ms.ToArray();
//将加密后的字节数组转化为字符串并返回
return Convert.ToBase64String(EncryptString);
}
/// <summary>
/// DES解密
/// </summary>
/// <returns></returns>
public static string DESDecryptString()
{
//将密钥Key转换为字节数组
byte[] iKey = Encoding.Default.GetBytes(_key);
//将加密后的字符串转化为字节数组
byte[] iText = Encoding.Default.GetBytes(_text);
//创建一个内存流
MemoryStream ms = new MemoryStream();
//创建加密对象实例
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = iKey;
des.Mode = CipherMode.ECB;
//使用密钥key创建一个解密流
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
//将字节数组写入解密流并清空缓冲区
cs.Write(iText, 0, iText.Length);
cs.FlushFinalBlock();
//得到解密后的字节数组
byte[] DecryptoString = ms.ToArray();
//将解密后的字节数组转化为字符串并返回
return Convert.ToBase64String(DecryptoString);
}
为什么加密没有问题
解密就会报"不正确的数据"这个错误。
/// <summary>
/// 要加解密的字符串
/// </summary>
public static string Text
{
set { CryptoString1._text = value; }
}
private static string _key;
/// <summary>
/// 加密的密钥
/// </summary>
public static string Key
{
set { CryptoString1._key = value; }
}
/// <summary>
/// DES加密
/// </summary>
/// <returns></returns>
public static string DESEncrypt0String()
{
//将密钥Key转换为字节数组
byte[] iKey = Encoding.Default.GetBytes(_key);
//将传递的字符创转化为字节数组
byte[] iText = Encoding.Default.GetBytes(_text);
//创建一个内存流
MemoryStream ms = new MemoryStream();
//创建一个加密对象实例
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = iKey;
des.Mode = CipherMode.ECB;//选择加密模式为ECB模式
//使用密钥Key创建一个加密流
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
//将字节数组写入加密流并清空缓冲区
cs.Write(iText, 0, iText.Length);
cs.FlushFinalBlock();
//得到加密后的字节数组
byte[] EncryptString = ms.ToArray();
//将加密后的字节数组转化为字符串并返回
return Convert.ToBase64String(EncryptString);
}
/// <summary>
/// DES解密
/// </summary>
/// <returns></returns>
public static string DESDecryptString()
{
//将密钥Key转换为字节数组
byte[] iKey = Encoding.Default.GetBytes(_key);
//将加密后的字符串转化为字节数组
byte[] iText = Encoding.Default.GetBytes(_text);
//创建一个内存流
MemoryStream ms = new MemoryStream();
//创建加密对象实例
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = iKey;
des.Mode = CipherMode.ECB;
//使用密钥key创建一个解密流
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
//将字节数组写入解密流并清空缓冲区
cs.Write(iText, 0, iText.Length);
cs.FlushFinalBlock();
//得到解密后的字节数组
byte[] DecryptoString = ms.ToArray();
//将解密后的字节数组转化为字符串并返回
return Convert.ToBase64String(DecryptoString);
}
为什么加密没有问题
解密就会报"不正确的数据"这个错误。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货