using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Text; using System.IO; using System.Security.Cryptography;
private void menuItem13_Click( object sender,System.EventArgse) ... { // 对应加密函数DSACrypData(stringstrcrypto) string strcrypto = richTextBox1.Text; DSACrypData(strcrypto); } public static void DSACrypData( string strcrypto) ... { // 先要将字符串转换为字节数组,这与编码有关。 string str = " thisisatest. " ; byte []bytes = Encoding.ASCII.GetBytes(str); // 选择签名方式,有RSA和DSA DSACryptoServiceProviderdsac = new DSACryptoServiceProvider(); byte []sign = dsac.SignData(bytes); // sign便是出来的签名结果。 // 下面是认证了 DSACryptoServiceProviderdsac2 = new DSACryptoServiceProvider(); dsac2.FromXmlString(dsac.ToXmlString( false )); bool ver = dsac2.VerifyData(bytes,sign); if (ver) ... { MessageBox.Show( " 通过 " ); } else ... { MessageBox.Show( " 不能通过 " ); } }private void menuItem17_Click( object sender,System.EventArgse) ... { // 对应加密函数DSACrypData(stringstrcrypto) string strData = richTextBox1.Text; richTextBox2.Text = DESEncodeData(strData); } public static string DESEncodeData( string data) ... { string KEY_64 = " VavicApp " ; string IV_64 = " VavicApp " ; byte []byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte []byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); DESCryptoServiceProvidercryptoProvider = new DESCryptoServiceProvider(); int i = cryptoProvider.KeySize; MemoryStreamms = new MemoryStream(); CryptoStreamcst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write); StreamWritersw = new StreamWriter(cst); sw.Write(data); sw.Flush(); cst.FlushFinalBlock(); sw.Flush(); return Convert.ToBase64String(ms.GetBuffer(), 0 ,( int )ms.Length); } private void menuItem21_Click( object sender,System.EventArgse) ... { // 对应加密函数DSACrypData(stringstrcrypto) string strData = richTextBox1.Text; richTextBox2.Text = DESDecodeData(strData); } public static string DESDecodeData( string data) ... { string KEY_64 = " VavicApp " ; string IV_64 = " VavicApp " ; byte []byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte []byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); byte []byEnc; try ... { byEnc = Convert.FromBase64String(data); } catch ... { return null ; } DESCryptoServiceProvidercryptoProvider= new DESCryptoServiceProvider(); MemoryStreamms = new MemoryStream(byEnc); CryptoStreamcst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read); StreamReadersr = new StreamReader(cst); return sr.ReadToEnd(); }