TripleDES加密、解密算法
2008-06-25 17:39
267 查看
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 }
相关文章推荐
- asp.net TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- asp.net TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- [★]基于.NET 的 加密 解密 算法总结[一]
- FlashFXP密码java加密解密算法
- C++ base64加密解密算法
- Java RSA 加密解密算法 入门
- 常见的加密和解密算法—DES
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
- 同时兼容JS和C#的RSA加密解密算法详解(对web提交的数据加密传输)
- 加密,解密算法
- 算法-加密/解密-DES(数据加密标准)
- Java简单的加密解密算法,使用异或运算
- 写出ELGamal公钥密码算法的加密、解密过程
- C#的加密解密算法,包括Silverlight的MD5算法
- TripleDES加密解密