zoukankan      html  css  js  c++  java
  • 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());
            }
    天生我材必有用,千金散尽还复来
  • 相关阅读:
    从程序员到项目经理(1)
    从程序员到项目经理(26):项目管理不能浑水摸鱼
    职场“常青树”越老越值钱
    阿里巴巴离职DBA 35岁总结的职业生涯
    CEPH RGW多 ZONE的配置
    CEPH 对象存储的系统池介绍
    Windows 下配置 Vagrant 环境
    vagrant 创建虚拟机时遇到问题
    浅谈Ceph纠删码
    磁盘缓存
  • 原文地址:https://www.cnblogs.com/ligenyun/p/7743432.html
Copyright © 2011-2022 走看看