//聲明KEY , KEY可以考慮動態生成
private static string sKey =ASCIIEncoding.ASCII.GetString(DESCryptoServiceProvider.Create().Key);
//加密字符串,利用DES進行加密
public string DESjia(string pToEncrypt)
{
byte[] data = Encoding.UTF8.GetBytes(pToEncrypt);
DESCryptoServiceProvider des = GetDes();
ICryptoTransform desCrypt = des.CreateEncryptor();//加密
byte[] result = desCrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
//解密
public string DESjie(string pToDecrypt)
{
string[] sInput = pToDecrypt.Split("-".ToCharArray());
byte[] data = new byte[sInput.Length];
for (int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], System.Globalization.NumberStyles.HexNumber);
}
DESCryptoServiceProvider des = GetDes();
ICryptoTransform desCrypt = des.CreateDecryptor();//解密
byte[] result = desCrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
public string DESjie(string pToDecrypt)
{
string[] sInput = pToDecrypt.Split("-".ToCharArray());
byte[] data = new byte[sInput.Length];
for (int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], System.Globalization.NumberStyles.HexNumber);
}
DESCryptoServiceProvider des = GetDes();
ICryptoTransform desCrypt = des.CreateDecryptor();//解密
byte[] result = desCrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
//獲取DES
private DESCryptoServiceProvider GetDes()
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
return des;
}
private DESCryptoServiceProvider GetDes()
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
return des;
}
protected void Button1_Click1(object sender, EventArgs e)
{
this.TextBox2.Text = DESjia(this.TextBox1.Text).ToString();//textbox2得出textbox1加密後的數字
}
protected void Button2_Click(object sender, EventArgs e)//這裏是獲得解密後的數字
{
this.TextBox3.Text = DESjie(this.TextBox2.Text).ToString();
}