123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- using System;
- using System.Security.Cryptography;
- using System.Text;
- namespace LJLib.Tools.DEncrypt
- {
- /// <summary>
- /// Encrypt 的摘要说明。
- /// Copyright (C) AIFMB
- /// </summary>
- public class DEncrypt
- {
- /// <summary>
- /// 构造方法
- /// </summary>
- public DEncrypt()
- {
- }
- #region 使用 缺省密钥字符串 加密/解密string
- /// <summary>
- /// 使用缺省密钥字符串加密string
- /// </summary>
- /// <param name="original">明文</param>
- /// <returns>密文</returns>
- public static string Encrypt(string original)
- {
- return Encrypt(original,"AIFMB");
- }
- /// <summary>
- /// 使用缺省密钥字符串解密string
- /// </summary>
- /// <param name="original">密文</param>
- /// <returns>明文</returns>
- public static string Decrypt(string original)
- {
- return Decrypt(original,"AIFMB",System.Text.Encoding.Default);
- }
- #endregion
- #region 使用 给定密钥字符串 加密/解密string
- /// <summary>
- /// 使用给定密钥字符串加密string
- /// </summary>
- /// <param name="original">原始文字</param>
- /// <param name="key">密钥</param>
- /// <param name="encoding">字符编码方案</param>
- /// <returns>密文</returns>
- public static string Encrypt(string original, string key)
- {
- byte[] buff = System.Text.Encoding.Default.GetBytes(original);
- byte[] kb = System.Text.Encoding.Default.GetBytes(key);
- return Convert.ToBase64String(Encrypt(buff,kb));
- }
- /// <summary>
- /// 使用给定密钥字符串解密string
- /// </summary>
- /// <param name="original">密文</param>
- /// <param name="key">密钥</param>
- /// <returns>明文</returns>
- public static string Decrypt(string original, string key)
- {
- return Decrypt(original,key,System.Text.Encoding.Default);
- }
- /// <summary>
- /// 使用给定密钥字符串解密string,返回指定编码方式明文
- /// </summary>
- /// <param name="encrypted">密文</param>
- /// <param name="key">密钥</param>
- /// <param name="encoding">字符编码方案</param>
- /// <returns>明文</returns>
- public static string Decrypt(string encrypted, string key,Encoding encoding)
- {
- byte[] buff = Convert.FromBase64String(encrypted);
- byte[] kb = System.Text.Encoding.Default.GetBytes(key);
- return encoding.GetString(Decrypt(buff,kb));
- }
- #endregion
- #region 使用 缺省密钥字符串 加密/解密/byte[]
- /// <summary>
- /// 使用缺省密钥字符串解密byte[]
- /// </summary>
- /// <param name="encrypted">密文</param>
- /// <param name="key">密钥</param>
- /// <returns>明文</returns>
- public static byte[] Decrypt(byte[] encrypted)
- {
- byte[] key = System.Text.Encoding.Default.GetBytes("AIFMB");
- return Decrypt(encrypted,key);
- }
- /// <summary>
- /// 使用缺省密钥字符串加密
- /// </summary>
- /// <param name="original">原始数据</param>
- /// <param name="key">密钥</param>
- /// <returns>密文</returns>
- public static byte[] Encrypt(byte[] original)
- {
- byte[] key = System.Text.Encoding.Default.GetBytes("AIFMB");
- return Encrypt(original,key);
- }
- #endregion
- #region 使用 给定密钥 加密/解密/byte[]
- /// <summary>
- /// 生成MD5摘要
- /// </summary>
- /// <param name="original">数据源</param>
- /// <returns>摘要</returns>
- public static byte[] MakeMD5(byte[] original)
- {
- MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
- byte[] keyhash = hashmd5.ComputeHash(original);
- hashmd5 = null;
- return keyhash;
- }
- /// <summary>
- /// 使用给定密钥加密
- /// </summary>
- /// <param name="original">明文</param>
- /// <param name="key">密钥</param>
- /// <returns>密文</returns>
- public static byte[] Encrypt(byte[] original, byte[] key)
- {
- TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
- des.Key = MakeMD5(key);
- des.Mode = CipherMode.ECB;
-
- return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
- }
- /// <summary>
- /// 使用给定密钥解密数据
- /// </summary>
- /// <param name="encrypted">密文</param>
- /// <param name="key">密钥</param>
- /// <returns>明文</returns>
- public static byte[] Decrypt(byte[] encrypted, byte[] key)
- {
- TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
- des.Key = MakeMD5(key);
- des.Mode = CipherMode.ECB;
- return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
- }
-
- #endregion
-
-
- }
- }
|