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());
            }
    天生我材必有用,千金散尽还复来
  • 相关阅读:
    SourceForge上发布dedup util 收藏
    IBM快速整合Diligent 触动了谁的神经?
    Data Domain揭开其神秘面纱 加速中国业务发展
    Java NIO原理和使用
    用PDB库调试Python程序
    windows下配置eclipse + Python + PyDev + tornado,并使用pylint进行静态检测
    函数fork与vfork的区别与联系详解
    关于C++中友元类和友元函数的示例讲解
    const成员函数
    pthread_cond_wait()深入解析
  • 原文地址:https://www.cnblogs.com/ligenyun/p/7743432.html
Copyright © 2011-2022 走看看