/// <summary>
/// 对数据进行加密 /// </summary> /// <param name="encryptstring">需要加密的数据</param> /// <returns></returns> public string DESEncrypt(string encryptstring) { string strRtn; try { DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); //des进行加密 PasswordDeriveBytes encryptkey = new PasswordDeriveBytes(encryptstring, null);//产生key byte[] key = encryptkey.GetBytes(8); byte[] data = System.Text.Encoding.Unicode.GetBytes(encryptstring);//取到密码的字节流 MemoryStream ms = new MemoryStream(); //用来存储加密后的数据 CryptoStream cs = new CryptoStream(ms, desc.CreateEncryptor(key, key), CryptoStreamMode.Write); //进行加密 cs.Write(data,0,data.Length ); cs.FlushFinalBlock(); //用缓冲区的当前状态更新基础数据源或存储库,随后清除缓冲区 strRtn = Convert.ToBase64String(ms.ToArray()); //将整个流内容写入字节数组,转换到字符串返回 return strRtn; } catch (Exception ex) { //弹出捕获的异常信息 MessageBox.Show("错误:"+ex.Message ,"错误消息提示框",MessageBoxButtons.OKCancel,MessageBoxIcon.Error ); return null ; } } /// <summary>
/// 对数据进行解密 /// </summary> /// <param name="decryptstring">需要解密的数据</param> /// <returns></returns> public string DESDecrypt(string decryptstring) { string strRtn; try { //定义访问数据加密标准(DES)算法的加密服务提供程序(CSP)版本的包装对象 DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); PasswordDeriveBytes encryptkey = new PasswordDeriveBytes(decryptstring, null);//产生key byte[] key = encryptkey.GetBytes(8); byte[] data = Convert.FromBase64String(decryptstring); MemoryStream ms = new MemoryStream(); //用来存储解密后的数据 CryptoStream cs = new CryptoStream(ms, desc.CreateEncryptor(key, key), CryptoStreamMode.Write); cs.Write(data, 0, data.Length); //进行解密 cs.FlushFinalBlock(); //用缓冲区的当前状态更新基础数据源或存储库,随后清除缓冲区 strRtn = System.Text.Encoding.Unicode.GetString(ms.ToArray()); //将整个流内容写入字节数组 return strRtn; } catch (Exception ex) { //弹出捕获的异常信息 MessageBox.Show("错误:" + ex.Message, "错误消息提示框", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); return null; } } |
|