//需要添加命名空间System.Security.Cryptography;System.Text;//========================================================================================= /// <summary> /// 字符串混淆器 /// </summary> /// <param name="str">要混淆的字符串</param> /// <param name="ints">长度为16的整型数组,要求0到30,可重复</param> /// <param name="chars">长度为小于等于32的字符数组,字符可为任意字符,参与字符打乱</param> /// <returns></returns> public static string Confused(string strs, int[] ints, char[] chars) { string strchange = ""; MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); //获取到的str转成UTF8编码的字节数组,转成字节数组后才能放到md5.ComputeHash这个里面 byte[] bytes1 = Encoding.UTF8.GetBytes(strs); string str = BitConverter.ToString(md5.ComputeHash(bytes1)).ToLower().Replace("-", ""); foreach (int item in ints) { strchange += str.Substring(item, 2); } char[] chararray = strchange.ToCharArray(); string ConfusedStr = ""; for (int i = 0; i < chars.Length; i++) { ConfusedStr += ((int)chararray[i]).ToString() + ((int)chars[i]).ToString(); } byte[] bytes2 = Encoding.UTF8.GetBytes(ConfusedStr); return BitConverter.ToString(md5.ComputeHash(bytes2)).ToLower().Replace("-", ""); } //=========================================================================================