有问题的大写字母加密与基本的Cipher加密代码在c#,他们只是翻译成符号提前,我写了下面的代码(Ps,标签和文本框是在瑞典,但希望我能得到帮助,反正
的代码。
private void btnkryptera_Click(object sender, EventArgs e)
{
string vanlig = tbxnormaltext.Text;
int bytanummer = int.Parse(tbxkryptera.Text);
tbxkryperadtext.Text = görKryptering(vanlig, bytanummer);
}
private static string görKryptering(string ord, int nummer)
{
char[] längd = ord.ToCharArray();
for (int i = 0; i < längd.Length; i++)
{
//Separate and change letters
char bokstav = längd[i];
//Change letters based on which shift
bokstav = (char)(bokstav + nummer);
//Delete 26 on 'overflow'
//Adds 26 on 'overflow'
if (bokstav > 'z')
{
bokstav = (char)(bokstav - 26);
}
else if (bokstav < 'a')
{
bokstav = (char)(bokstav + 26);
}
//Then save
längd[i] = bokstav;
}
return new string(längd);
}
小写字母的编号从'a'==97到'z'==122。大写字母是'A' == 65到'Z' == 90。
因此,你的 bokstav < 'a'
将会处理你的大写字母,并且处理得不正确。
要么为大写字母加上特定的编码,要么使用 ToLower()
将您的明文转换为小写。