C#扰码和;解扰文本

C#扰码和;解扰文本,c#,text,scramble,C#,Text,Scramble,我已经有了这个方法来扰乱我的文本,但我不知道如何解读它 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(

我已经有了这个方法来扰乱我的文本,但我不知道如何解读它

        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();
字符串输入=”https://www.google.de/";
char[]chars=input.ToArray();
随机r=新随机(259);
for(int i=0;i
我不太擅长数字和计算这类事情,如果有人能帮助我,这类事情会很好

我已经搜索了函数,但找不到一个我能理解的例子

//编辑:

-我如何制作一个置乱或置乱函数,用一个特定的数字对文本进行置乱,以便每次都以相同的方式对文本进行置乱


-在那之后,我如何才能取消缓冲呢?

只需做你已经向后做过的同样的事情(你需要以相反的顺序使用来自同一种子的相同随机数,所以先将它们放在列表中):

字符串输入=”https://www.google.de/";
char[]chars=input.ToArray();
随机r=新随机(259);
for(int i=0;i=0;i--)
{
char temp=scramChars[swaps[i]];
scramChars[swaps[i]=scramChars[i];
scramChars[i]=温度;
}
解开的字符串=新字符串(scramChars);
控制台写入线(scramChars);

你不能只是把随机字符从空中拉出来,然后期望能够撤销一些事情。你必须设计一种特定的方式来编码(置乱)你知道如何反转它们。没有任何数字和计算可以让你撤销随机替换的值。但我在其他帖子上读到,用种子可以做到吗?因为如果我声明一个种子而不是一个随机数,它总是以同样的方式对它进行置乱。你可以以同样的顺序得到同样的随机数,但是你没有办法回到你刚刚扔掉的原始值。您需要设计一种特定的置乱方法,该方法有一个算法来撤消置乱。我在第一次评论中这样说。我再说一遍会有帮助吗?你能给我举个例子让我看看吗?就像我在帖子里说的,我不太擅长这个计算stuff@RaINi
我对这种计算能力不太在行
这就是真正编程的用武之地。。。你可以设计自己的模糊算法,而不只是复制别人的。我喜欢原始帖子上所有的评论都说这是不可能的,然后正确的答案就会被发布+1.
        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);