- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Security.Cryptography;
- using System.IO;
- namespace WindowsFormsApplication1
- {
- #region TripleDES算法
- public class ClassTripleDES
- {
- public ClassTripleDES()
- {
- }
- //加密,使用密碼產生加密算法的公鑰,並使用TripleDES對密碼進行加密。
- public static string Encrypt(string pass)
- {
- try
- {
- byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
- PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);
- byte[] key = pdb.GetBytes(24);
- byte[] iv = pdb.GetBytes(8);
- MemoryStream ms = new MemoryStream();
- TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
- CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
- cs.Write(bt, 0, bt.Length);
- cs.FlushFinalBlock();
- return Convert.ToBase64String(ms.ToArray());
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- //解密,使用密碼產生加密算法的公鑰,並使用TripleDES對加密數據進行解密。
- public static string Decrypt(string str, string pass)
- {
- try
- {
- byte[] bt = Convert.FromBase64String(str);
- PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);
- byte[] key = pdb.GetBytes(24);
- byte[] iv = pdb.GetBytes(8);
- MemoryStream ms = new MemoryStream();
- TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
- CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);
- cs.Write(bt, 0, bt.Length);
- cs.FlushFinalBlock();
- return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- //使用:
- //string str = Encrypt("bbb");
- //Console.WriteLine(Decrypt(str, "bbb"));
- //加密,使用密碼產生加密算法的公鑰,並使用TripleDES對密碼進行加密。
- public static string EncryptWithKey(string pass, string p_key)
- {
- try
- {
- byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
- PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
- byte[] key = pdb.GetBytes(24);
- byte[] iv = pdb.GetBytes(8);
- MemoryStream ms = new MemoryStream();
- TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
- CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
- cs.Write(bt, 0, bt.Length);
- cs.FlushFinalBlock();
- return Convert.ToBase64String(ms.ToArray());
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- //解密,使用密碼產生加密算法的公鑰,並使用TripleDES對加密數據進行解密。
- public static string DecryptWithKey(string str, string p_key)
- {
- try
- {
- byte[] bt = Convert.FromBase64String(str);
- PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
- byte[] key = pdb.GetBytes(24);
- byte[] iv = pdb.GetBytes(8);
- MemoryStream ms = new MemoryStream();
- TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
- CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);
- cs.Write(bt, 0, bt.Length);
- cs.FlushFinalBlock();
- return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- }
- #endregion
- }
轉自:記不清了。