我已经有了这种方法来加扰我的文字,但我不知道如何解读它?
string input = "https://www.google.de/";
char[] chars = input.ToArray();
Random r = new Random(259);
for (int i = 0; i < chars.Length; i++)
{
int randomIndex = r.Next(0, chars.Length);
char temp = chars[randomIndex];
chars[randomIndex] = chars[i];
chars[i] = temp;
}
new string(chars);
Console.WriteLine(chars);
Console.ReadKey();
我对数字和计算这类事情并不擅长,如果有人可以帮助我,这样的事情会很好。
我已经搜索了函数,但我找不到一个我理解的例子。
//编辑:
- 如何制作一个Scramble或Shuffle函数,用特定的数字对文本进行混洗,以便每次都以相同的方式对文本进行加扰?
- 之后如何解开呢?
答案 0 :(得分:4)
只做你已经向后做的事情(你需要以相反的顺序使用相同种子中的相同随机数,所以先把它们放在列表中):
string input = "https://www.google.de/";
char[] chars = input.ToArray();
Random r = new Random(259);
for (int i = 0; i < chars.Length; i++)
{
int randomIndex = r.Next(0, chars.Length);
char temp = chars[randomIndex];
chars[randomIndex] = chars[i];
chars[i] = temp;
}
string scrambled = new string(chars);
Console.WriteLine(chars);
Console.ReadKey();
r = new Random(259);
char[] scramChars = scrambled.ToArray();
List<int> swaps = new List<int>();
for (int i = 0; i < scramChars.Length; i++)
{
swaps.Add(r.Next(0, scramChars.Length));
}
for (int i = scramChars.Length - 1; i >= 0; i--)
{
char temp = scramChars[swaps[i]];
scramChars[swaps[i]] = scramChars[i];
scramChars[i] = temp;
}
string unscrambled = new string(scramChars);
Console.WriteLine(scramChars);