• 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());
            }
    天生我材必有用,千金散尽还复来
  • 相关阅读:
    C#中使用Oracle存储过程返回结果集
    微信公众平台开发教程(九)微信公众平台通用开发框架
    微信公众平台开发教程(八)Session处理
    微信公众平台开发教程(七)安全策略
    微信公众平台开发教程(六)获取个性二维码
    微信公众平台开发教程(五)自定义菜单(含实例源码)
    微信公众平台开发教程(三) 基础框架搭建
    微信公众平台开发教程(一) 微信公众账号注册流程
    当"唐僧"没那么容易
    C#编程总结(六)异步编程
  • 原文地址:https://www.cnblogs.com/ligenyun/p/7743432.html
Copyright © 2020-2023  润新知