如何将字符串替换为另一个可以使用c#返回原始字符串的字符串

时间:2017-11-26 06:39:51

标签: c# asp.net string security encryption

我想将字符串替换为另一个字符串,可以使用c#将其恢复为原始字符串 例如,如果我输入

  

" XcXa $ 2A"

然后点击按钮,输出将是以下字符串:

  

" t6tYQA *"

那是因为我的例子

X replaced by t 
c replaced by 6
a replaced by Y
A replaced by *
$ replaced by Q
2 replaced by A

并且输出字符串也可以从另一个按钮返回到原始字符串" t6tYQA *"可以回到原来的" XcXa $ 2A" 所以我需要将键盘上的所有字符替换为另一个字符,输出可以恢复原始状态。 提前致谢。 我需要保护我的所有字符串并且不需要使用加密和解密。

2 个答案:

答案 0 :(得分:1)

步骤:

  1. 创建一个Dictionary<string, string> dict对象并在此处存储所有映射。
  2. 创建一个获取映射的方法:

    string GetEncryptedData(string s)
    {
       StringBuilder s = new StringBuilder();
       foreach(char c in s.ToCharArray()
       {
          s.Append(dict[c]);
       }
       return s.ToString();
     }
    
  3. 创建一个获取反向映射的方法:

    string GetDecryptedData(string s)
    {
       StringBuilder s = new StringBuilder();
       foreach(char c in s.ToCharArray()
       {
           s.Append(dict.FirstOrDefault(x => x.Value == c).Key;);
       }
       return s.ToString();
     }
    

答案 1 :(得分:0)

以下代码段会根据您的需要为您提供加密和解密的等效内容。而且你也可以轻松解密它。

class Program
        {
            static void Main(string[] args)
            {            
                string input = "sudar";

                string encodedInput = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(input));
                string decodedInput = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(encodedInput));

                Console.WriteLine("Actual text:" + input);
                Console.WriteLine("Encrypted Value: " + encodedInput);
                Console.WriteLine("Decrypted Value: " + decodedInput);

                List<string> encryptedList = new List<string>();

                Console.WriteLine("Encrypted Data:");

                foreach (char c in input.ToCharArray())
                {
                    string encryptedValue = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(c.ToString()));
                    Console.WriteLine(c + " replaced by " + encryptedValue);
                    encryptedList.Add(encryptedValue);
                }

                Console.WriteLine("Decrypted Data:");
                foreach (string s in encryptedList)
                {
                    string decryptedValue = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(s));
                    Console.WriteLine(s + " replaced by " + decryptedValue);
                }

                Console.Read();

            }
        }

Output of the below code