密码加密大写字母c#的问题。

问题描述 投票:0回答:1

有问题的大写字母加密与基本的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);
}
c# encryption caesar-cipher
1个回答
0
投票

小写字母的编号从'a'==97到'z'==122。大写字母是'A' == 65到'Z' == 90。

因此,你的 bokstav < 'a' 将会处理你的大写字母,并且处理得不正确。

要么为大写字母加上特定的编码,要么使用 ToLower() 将您的明文转换为小写。

© www.soinside.com 2019 - 2024. All rights reserved.