密码加密和解密
??????? /// <summary>
??????? /// 字符串加密
??????? /// </summary>
??????? /// <param name="original">明文</param>
??????? /// <returns>密文</returns>
??????? public static string Encrypt(string original)
??????? {
??????????? byte[] buff = System.Text.Encoding.Default.GetBytes(original);
??????????? byte[] kb = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
??????????? return Convert.ToBase64String(Encrypt(buff, kb));
??????? }
??????? /// <summary>
??????? /// 字符串解密
??????? /// </summary>
??????? /// <param name="original">密文</param>
??????? /// <returns>明文</returns>
??????? public static string Decrypt(string original)
??????? {
??????????? try
??????????? {
??????????????? byte[] buff = Convert.FromBase64String(original);
??????????????? byte[] kb = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
??????????????? return System.Text.Encoding.Default.GetString(Decrypt(buff, kb));
??????????? }
??????????? catch (Exception ex)
??????????? {
??????????????? return "";
??????????? }
??????? }
??????? /// <summary>
??????? /// 使用給定密鑰加密
??????? /// </summary>
??????? /// <param name="original">明文</param>
??????? /// <param name="key">密鑰</param>
??????? /// <returns>密文</returns>
??????? private 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>
??????? private static byte[] Decrypt(byte[] encrypted, byte[] key)
??????? {
??????????? try
??????????? {
??????????????? TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
??????????????? des.Key = MakeMD5(key);
??????????????? des.Mode = CipherMode.ECB;
??????????????? return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
??????????? }
??????????? catch (Exception ex)
??????????? {
??????????????? return null;
??????????? }
??????? }
??????? /// <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;
??????? }
轉載于:https://www.cnblogs.com/n666/archive/2009/09/11/2191148.html
總結
- 上一篇: FileUtils工具类
- 下一篇: HDU 3488 KM