//需要添加命名空间
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("-", "");
}
//=========================================================================================