如何向rot13和凯撒加密添加更多字符和字母



我想在这个加密器的字母表中添加字母"ç","ğ","ı","ö"和"ü",也许还有特殊的字符。我该怎么做?

    for (int i = 0; i < metin.length(); i++) {
        char harf = metin.charAt(i);
        if       (harf >= 'a' && harf <= 'm') harf += i;
        else if  (harf >= 'A' && harf <= 'M') harf += i;
        else if  (harf >= 'n' && harf <= 'z') harf -= i;
        else if  (harf >= 'N' && harf <= 'Z') harf -= i;
        System.out.print(harf);
    }

你正在使用Java实习生Char's作为整数来实现密码。更好的方法是使用带有字符集中所需字符的String charSet = "abcdefgh.... %&/(öäüô";

String charset = "abcdefghijklmnopqrstuvwxyzäöü";    
for (int i = 0; i < metin.length(); i++) {
    int j = charset.indexOf(metin.charAt(i));
    if(j < -1)
    {
        //deal with unknown char
    }
    if(j == charset.length)
    {
        j=0;
    }
    System.out.print(charset.charAt(j+1);
}

我希望你明白这个想法。

您可以像这样使策略更通用。

String text = "abcdefghijklmnopqrstuvwxyz0123456789!$%^&*()äöü";
for (int i = 0; i < text.length(); i++) {
    char ch = text.charAt(i);
    ch--;
    if (ch % 32 < 13)
        ch += 13;
    else if (ch % 32 < 26)
        ch -= 13;
    else if (ch % 32 < 29)
        ch += 3;
    else
        ch -= 3;
    ch++;
    System.out.print(ch);
}

指纹

nopqrstuvwxyzabcdefghijklm#$%&'()*+,.12[3756ñéÿ

相关内容

  • 没有找到相关文章

最新更新