ASP.NET 加密解密

1.MD5

2.DES

一 MD5

介绍:MD5是不可逆解密方式,比如对密码的加密,为了保密,让密码不能解密

 public static string MD5Encrypt(string str)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] bs = md5.ComputeHash(Encoding.Default.GetBytes(str));
            string result = BitConverter.ToString(bs);

            return result;
        }

二 DES

介绍:对称加密,可解密

 private static readonly string Key = "xxxxx";

/// <summary>
        /// Des解密方法
        /// </summary>
        /// <param name="val"></param>
        /// <param name="key"></param>
        /// <param name="IV"></param>
        /// <returns></returns>
        public static string DESDecrypt(string val)
        {
            byte[] buffer1 = Encoding.Default.GetBytes(Key.Substring(0, 8));
            byte[] buffer2 = buffer1;
            DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider();
            provider1.Mode = CipherMode.ECB;
            provider1.Key = buffer1;
            provider1.IV = buffer2;
            ICryptoTransform transform1 = provider1.CreateDecryptor(provider1.Key, provider1.IV);
            byte[] buffer3 = Convert.FromBase64String(val);
            MemoryStream stream1 = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write);
            stream2.Write(buffer3, 0, buffer3.Length);
            stream2.FlushFinalBlock();
            stream2.Close();
            return Encoding.Default.GetString(stream1.ToArray());
        }

        /// <summary>
        /// Des加密方法
        /// </summary>
        /// <param name="val"></param>
        /// <param name="key"></param>
        /// <param name="IV"></param>
        /// <returns></returns>
        public static string DESEncrypt(string val)
        {
            byte[] buffer1 = Encoding.Default.GetBytes(Key.Substring(0, 8));
            byte[] buffer2 = buffer1;
            DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider();
            provider1.Mode = CipherMode.ECB;
            provider1.Key = buffer1;
            provider1.IV = buffer2;
            ICryptoTransform transform1 = provider1.CreateEncryptor(provider1.Key, provider1.IV);
            byte[] buffer3 = Encoding.Default.GetBytes(val);
            MemoryStream stream1 = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write);
            stream2.Write(buffer3, 0, buffer3.Length);
            stream2.FlushFinalBlock();
            stream2.Close();
            return Convert.ToBase64String(stream1.ToArray());
        }

 

posted on 2017-10-27 15:12  biind  阅读(524)  评论(0编辑  收藏  举报