zoukankan      html  css  js  c++  java
  • MD5加密 和 自定义加密解密

    public class EncryptString
        {
            /// <summary>
            /// MD5加密
            /// </summary>
            /// <param name="instr"></param>
            /// <returns></returns>
            public static string EncryptMD5(string instr)
            {
                string result;
                try
                {
                    byte[] toByte = Encoding.Default.GetBytes(instr);
                    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                    toByte = md5.ComputeHash(toByte);
                    result = BitConverter.ToString(toByte).ToLower().Replace("-", "");
                }
                catch
                {
                    result = "";
                }
                return result;
            }
    
            /// <summary>
            /// 加密(自定义的字节加密)
            /// </summary>
            /// <param name="str"></param>
            /// <param name="bo">是否加随机数</param>
            /// <returns></returns>
            public static string MyEncrypt(string str, bool bo)
            {
                char[] cs = str.ToCharArray();
                byte[] by;
                string results = "", temp = "";
                for (int i = 0; i < cs.Length; i++)
                {
                    by = System.Text.Encoding.UTF8.GetBytes(cs[i].ToString());
                    temp = Convert.ToBase64String(by);//每个字转换为四位
                    if (bo)
                    {
                        temp += Common.GetMes.Random(10, 99).ToString();//同时加两个随机变量
                    }
                    results += temp;//(每个变为6位)全部相加
                }
                return results;
            }
            /// <summary>
            /// 解密(自定义的字节加密)
            /// </summary>
            /// <param name="str"></param>
            /// <param name="t">要和上面的对应,如果加了随机数则t值应该为6,不加的话是4,否则出错</param>
            /// <returns></returns>
            public static string DeMyEnncrypt(string str, int t)
            {
                string result = "", strtemp = "";
                try
                {
                    char[] cs = str.ToCharArray();
                    string[] temp = Common.GetMes.ArrayListstr(str, t);
                    byte[] by;
                    for (int i = 0; i < temp.Length; i++)
                    {
                        strtemp = (temp[i].ToString()).Substring(0, 4);
                        by = Convert.FromBase64String(strtemp);
                        result += System.Text.Encoding.UTF8.GetString(by);
                    }
                    return result;
                }
                catch
                {
                    return "";
                }
            }
    
            /// <summary>
            /// 把一个字符串按照n位长度分割为数组
            /// </summary>
            /// <param name="str"></param>
            /// <param name="n"></param>
            /// <returns></returns>
            public static string[] ArrayListstr(string str, int n)
            {
                string[] result;
                try
                {
                    if (n <= 0)
                    {
                        n = str.Length;
                    }
                    int arrynum = 0;
                    arrynum = (int)(str.Length / n);
                    if (arrynum <= 0)
                    {
                        arrynum = 1;
                    }
                    result = new string[arrynum];
                    for (int i = 0; i < arrynum; i++)
                    {
                        result[i] = str.Substring(n * i, n);
                    }
                }
                catch
                {
                    result = new string[1] { "" };
                }
                return result;
            }
        }
  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/12009441.html
Copyright © 2011-2022 走看看