原有C#类如下:只写Encode的两个方法就行了,O(∩_∩)O谢谢~
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System;
/// <summary>
///MDProperty 的摘要说明
/// </summary>
public class MDProperty
{
// <summary>
/// 加密
/// </summary>
/// <param name="str"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string Encode(string str, string key)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
StringBuilder builder = new StringBuilder();
foreach (byte num in stream.ToArray())
{
builder.AppendFormat("{0:X2}", num);
}
stream.Close();
return builder.ToString();
}
/// <summary>
/// Des 解密 GB2312
/// </summary>
/// <param name="str">Desc string</param>
/// <param name="key">Key ,必须为8位 </param>
/// <returns></returns>
public static string Decode(string str, string key)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] buffer = new byte[str.Length / 2];
for (int i = 0; i < (str.Length / 2); i++)
{
int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
buffer[i] = (byte)num2;
}
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
stream.Close();
return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
}
// 调用方法
/// <summary>
/// If don't input key , Use default key
/// Des 加密 GB2312 :
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Encode(string str)
{
string strmd = "";
if (str == null)
strmd = null;
else if (str == "")
strmd = "";
else
strmd=Encode(str, "Rainight");
return strmd;
}
/// <summary>
/// 解密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Decode(string str)
{
string strmd = "";
if (str == null)
strmd = null;
else if (str == "")
strmd = "";
else
strmd=Decode(str, "Rainight");
return strmd;
}
}
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System;
/// <summary>
///MDProperty 的摘要说明
/// </summary>
public class MDProperty
{
// <summary>
/// 加密
/// </summary>
/// <param name="str"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string Encode(string str, string key)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
StringBuilder builder = new StringBuilder();
foreach (byte num in stream.ToArray())
{
builder.AppendFormat("{0:X2}", num);
}
stream.Close();
return builder.ToString();
}
/// <summary>
/// Des 解密 GB2312
/// </summary>
/// <param name="str">Desc string</param>
/// <param name="key">Key ,必须为8位 </param>
/// <returns></returns>
public static string Decode(string str, string key)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] buffer = new byte[str.Length / 2];
for (int i = 0; i < (str.Length / 2); i++)
{
int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
buffer[i] = (byte)num2;
}
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
stream.Close();
return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
}
// 调用方法
/// <summary>
/// If don't input key , Use default key
/// Des 加密 GB2312 :
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Encode(string str)
{
string strmd = "";
if (str == null)
strmd = null;
else if (str == "")
strmd = "";
else
strmd=Encode(str, "Rainight");
return strmd;
}
/// <summary>
/// 解密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Decode(string str)
{
string strmd = "";
if (str == null)
strmd = null;
else if (str == "")
strmd = "";
else
strmd=Decode(str, "Rainight");
return strmd;
}
}
解决方案 »
- 队列问题,知道的进
- 重装VS2010,遇到握手期间发生错误,求高手解决
- 如何在WPF中打开djvu格式文件?
- 自定义控件绑定XML显示不出来,datasource的Item里面有数据
- 如何改变文本框的数据类型
- 在写一个SQL语句时遇到的问题,怎么把这串字符做为字符串插入到库中“<img src=image/face/1.gif border="0"/>”
- 关于隐藏和用重写的区别
- #########################
- datagridview.DataSource绑定datatable报错
- c#做b/s 报表好做么?
- 怎么在.net里获取HTMP文本的值
- 什么是简单工厂?什么是抽象工厂?
欢迎使用 CSDN 小秘书
CSDN 小秘书
***********************************************************[/align]