• 一些加密方法


     MD5 加密
    using System.Security.Cryptography;
    
    public static string encrypherment(string password)
            {
                string StrEncipherment = "";
                MD5 myMd5 = MD5.Create();
                byte[] mess = myMd5.ComputeHash(System.Text.Encoding.Default.GetBytes(password.ToCharArray()));
                for (int i = 0; i < mess.Length; i++)
                    StrEncipherment += mess[i].ToString("x").PadLeft(2, '0');
                return StrEncipherment;
            }

    ——————————————————————————————————————————————————————————————————————

     
        /// 需要加密的字符串
         /// 偏移量
         /// sDataIn加密后的字符串
         public string GetMD5(string sDataIn, string move)
        {
             System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
             byte[] bytValue, bytHash;
             bytValue = System.Text.Encoding.UTF8.GetBytes(move + sDataIn);
             bytHash = md5.ComputeHash(bytValue);
             md5.Clear();
             string sTemp = "";
             for (int i = 0; i <</SPAN> bytHash.Length; i++)
            {
                 sTemp += bytHash[i].ToString("x").PadLeft(2, '0');
             }
             return sTemp;
     }
     textBox1.Text = this.GetMD5("123456","");
     结果: e10adc3949ba59abbe56e057f20f883e

    其他用法

    public class Md5Convert
    {
         public static string GetMd5Str(string ConvertString)
        {
             MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
             string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
             //t2 = t2.Replace("-", "");
             return t2;
         }
     }
     textBox1.Text = Md5Convert.GetMd5Str("123456");
     结果: 49-BA-59-AB-BE-56-E0-57
     可逆的加密方法
    public class Pass
        {
            //默认密钥向量
            private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
    
            /// <summary>
            /// DES加密字符串
            /// </summary>
            /// <param name="encryptString">待加密的字符串</param>
            /// <param name="encryptKey">加密密钥,要求为8位</param>
            /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
            public static string EncryptDES(string encryptString, string encryptKey)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                    byte[] rgbIV = Keys;
                    byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                    DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                    MemoryStream mStream = new MemoryStream();
                    CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    return Convert.ToBase64String(mStream.ToArray());
                }
                catch
                {
                    return encryptString;
                }
            }
    
            /// <summary>
            /// DES解密字符串
            /// </summary>
            /// <param name="decryptString">待解密的字符串</param>
            /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
            /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
            public static string DecryptDES(string decryptString, string decryptKey)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                    byte[] rgbIV = Keys;
                    byte[] inputByteArray = Convert.FromBase64String(decryptString);
                    DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                    MemoryStream mStream = new MemoryStream();
                    CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    return Encoding.UTF8.GetString(mStream.ToArray());
                }
                catch
                {
                    return decryptString;
                }
            }
        }

    调用:

    Pass.EncryptDES("字符串", "azjmerbv");
    Pass.DecryptDES("字符串", "azjmerbv");
  • 相关阅读:
    mysql索引的选择
    A、B两个线程交替打印1 -- 100
    dubbo服务暴露
    1
    java无锁化编程一:目录
    如何实现自定义同步组件
    服务器的性能监控
    关于shiro安全框架实现同一用户同一时刻仅可在一个地址登录的技术实现
    关于Spring的Quartz定时器设定
    JAVA之Mybatis基础入门二 -- 新增、更新、删除
  • 原文地址:https://www.cnblogs.com/chcong/p/4245523.html
Copyright © 2020-2023  润新知