DES加密/解密程序.
//获取或设置对称算法的初始化向量
private static byte[] DESIV = new byte[] {75, 158, 46, 97, 78, 57, 17, 36};
//加密函数:
public static string Encode(string Encode_String)
{
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
MemoryStream objMemoryStream = new MemoryStream();
//用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateEncryptor(DESKey,DESIV),CryptoStreamMode.Write);
StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);
objStreamWriter.Write(Encode_String);
objStreamWriter.Flush();
objCryptoStream.FlushFinalBlock();
objMemoryStream.Flush();
return Convert.ToBase64String(objMemoryStream.GetBuffer(), 0, (int)objMemoryStream.Length);
}
//解密函数
public static string Decode(string Encode_String)
{
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
byte[] Input = Convert.FromBase64String(Encode_String);
MemoryStream objMemoryStream = new MemoryStream(Input);
//用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 解密器对象
CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateDecryptor(DESKey,DESIV),CryptoStreamMode.Read);
StreamReader objStreamReader = new StreamReader(objCryptoStream);
return objStreamReader.ReadToEnd();
}
private void button1_Click_1(object sender, System.EventArgs e)
{
//加密
try
{
string temp = textBox1.Text ;
textBox2.Text = Encode(temp);
}
catch(System.Exception ee)
{
MessageBox.Show(ee.Message);
}
}
private void button2_Click(object sender, System.EventArgs e)
{
//解密
textBox3.Text=Decode(textBox2.Text);
}
此效果图演示请访问http://www.zhangjian.net获取更多的经典例子.