密码加密大写字母c#的问题
Problem with cipher crypting uppercase letter c#
在使用 C# 中的基本 Cipher 加密代码加密大写字母时遇到问题,它们只是转换为符号
提前致谢,我写了下面的代码
(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()
将明文转换为小写。
在使用 C# 中的基本 Cipher 加密代码加密大写字母时遇到问题,它们只是转换为符号 提前致谢,我写了下面的代码 (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()
将明文转换为小写。