我想将字符串替换为另一个字符串,可以使用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" 所以我需要将键盘上的所有字符替换为另一个字符,输出可以恢复原始状态。 提前致谢。 我需要保护我的所有字符串并且不需要使用加密和解密。
答案 0 :(得分:1)
步骤:
Dictionary<string, string> dict
对象并在此处存储所有映射。创建一个获取映射的方法:
string GetEncryptedData(string s)
{
StringBuilder s = new StringBuilder();
foreach(char c in s.ToCharArray()
{
s.Append(dict[c]);
}
return s.ToString();
}
创建一个获取反向映射的方法:
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();
}
}