我在网上找了一个给cookie加密码的方法
private static byte[] Key64 = { 42, 16, 93, 156, 78, 4, 218, 32 };
private static byte[] IV64 = { 55, 103, 246, 79, 36, 99, 167, 3 };
public static String Encrypt(String valueString)
{ if (valueString != "")
{ //定义DES的Provider DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider(); //定义内存流 MemoryStream memoryStream = new MemoryStream(); //定义加密流 CryptoStream cryptoStream = new CryptoStream(memoryStream, desprovider.CreateEncryptor(Key64, IV64), CryptoStreamMode.Write); //定义写IO流 StreamWriter writerStream = new StreamWriter(cryptoStream); //写入加密后的字符流 writerStream.Write(valueString); writerStream.Flush(); cryptoStream.FlushFinalBlock(); memoryStream.Flush(); //返回加密后的字符串 return (Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length)); } return (null); } public static String Decrypt(String valueString)
{ if (valueString != "")
{ //定义DES的Provider DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider(); //转换解密的字符串为二进制 byte[] buffer = Convert.FromBase64String(valueString); //定义内存流 MemoryStream memoryStream = new MemoryStream(); //定义加密流 CryptoStream cryptoStream = new CryptoStream(memoryStream, desprovider.CreateEncryptor(Key64, IV64), CryptoStreamMode.Read); //定义读IO流 StreamReader readerStream = new StreamReader(cryptoStream); //返回解密后的字符串 return (readerStream.ReadToEnd()); } return (null); }
999999999加密码后得9xUMRbhvMx/h8cPh6OAs9w==
在用 Decrypt(“9xUMRbhvMx/h8cPh6OAs9w== ”)解密后是 H�`9s� 无语了,咋回事,
或谁有更好的办法
private static byte[] Key64 = { 42, 16, 93, 156, 78, 4, 218, 32 };
private static byte[] IV64 = { 55, 103, 246, 79, 36, 99, 167, 3 };
public static String Encrypt(String valueString)
{ if (valueString != "")
{ //定义DES的Provider DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider(); //定义内存流 MemoryStream memoryStream = new MemoryStream(); //定义加密流 CryptoStream cryptoStream = new CryptoStream(memoryStream, desprovider.CreateEncryptor(Key64, IV64), CryptoStreamMode.Write); //定义写IO流 StreamWriter writerStream = new StreamWriter(cryptoStream); //写入加密后的字符流 writerStream.Write(valueString); writerStream.Flush(); cryptoStream.FlushFinalBlock(); memoryStream.Flush(); //返回加密后的字符串 return (Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length)); } return (null); } public static String Decrypt(String valueString)
{ if (valueString != "")
{ //定义DES的Provider DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider(); //转换解密的字符串为二进制 byte[] buffer = Convert.FromBase64String(valueString); //定义内存流 MemoryStream memoryStream = new MemoryStream(); //定义加密流 CryptoStream cryptoStream = new CryptoStream(memoryStream, desprovider.CreateEncryptor(Key64, IV64), CryptoStreamMode.Read); //定义读IO流 StreamReader readerStream = new StreamReader(cryptoStream); //返回解密后的字符串 return (readerStream.ReadToEnd()); } return (null); }
999999999加密码后得9xUMRbhvMx/h8cPh6OAs9w==
在用 Decrypt(“9xUMRbhvMx/h8cPh6OAs9w== ”)解密后是 H�`9s� 无语了,咋回事,
或谁有更好的办法
解决方案 »
- 母版面应用问题。 里面是错误提示
- |zyciis| 如何让我的页面cs文件应用两个基类
- asp.net在后置代码当中。。怎么往页面指定的区域加代码
- 怎么样获取资源请求的来源页面地址?
- 同一个解决方案里的两个项目,session可以相互传递吗?
- !!!!!!!!!生成Word问题,高手帮忙!!!!!!!!!!!!!!!
- 请教带有母版页的问题
- 怎样实现循环导入多个Excel到GridView
- 后台如何写 2个日期间隔
- 如何将字符串19750208转换为日期
- UpdatePanel与用户自定义控件的问题
- 对于不返回任何键列信息的SelectCommand不支持UpdateCommand的动态SQL生成
public static string Encrypt(string encryptString, string encryptKey)
{
try
{
byte[] bKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] bIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider des= new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
public static string Decrypt(string decryptString, string decryptKey)
{
try
{
byte[] bKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] bIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider des= new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}