用c#编程。
我试图用另一个字符(加密)替换字符串中的每个字符,但我需要一些帮助。我打算用两个数组来做这个,一个用字母表在其中,然后另一个用替换值,但我意识到我必须做一个别的 - 如果整个字母的大小,我不真的有时间。我想知道是否有更简单,更快捷的方式。这就是我到目前为止所拥有的
private string EncryptFn(string Sinput)
{
string STencryptedResult = "Null for now";
char[] CAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
char[] Encrypt = "QWERTYUIOPASDFGHJKLZXCVBNM".ToCharArray();
return STencryptedResult;
}
由于
答案 0 :(得分:6)
您可以使用词典:
var map = new Dictionary<char,char> {
{ 'A', 'Q' },
{ 'B', 'W' },
// etc
};
然后用这样的东西很容易映射每个字符:
var result = new StringBuilder();
foreach( var fromChar in inputString ) {
char toChar;
if( ! map.TryGetValue(fromChar, out toChar) ) {
// Do something with missing char
}
result.Append(toChar);
}
答案 1 :(得分:5)
这不是一个非常强大的加密,但您使用以下版本将非常高效,并且只需要很少的数据来定义加密:
private string EncryptFn(string Sinput)
{
string coding = "QWERTYUIOPASDFGHJKLZXCVBNM";
StringBuilder result = new StringBuilder();
foreach (char c in Sinput)
{
int index = (Char.ToUpper(c) - 'A');
if (index >= 0 && index < coding.Length)
result.Append(coding[index]);
else
result.Append(c);
}
return result.ToString();
}
答案 2 :(得分:0)
您可能会考虑使用BitWise操作,它们非常适合加密和解密数据。请参阅以下内容。