gpt4 book ai didi

java - 凯撒密码Java解密

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:32 25 4
gpt4 key购买 nike

我在尝试解码加密消息时遇到问题。它可以解密几乎所有内容,但是当我尝试解密“w x y z”(全部小写)时,它无法正常工作。它仅在这些字母为大写时解密它们。我做错了什么?

@SuppressWarnings("unused")
public static void main(String[] args) {

String message = "ABCDEFGHILMNOPQRSTU hello giordano WORLD HOW wxyZ XyZ XYZ YOU xyz";

System.out.println(message);
String encr = encrypt(message);
String decr = decrypt(encr);

System.out.println(encr + "\n" + decr);

}



@SuppressWarnings("unused")
private static String encrypt(String message) {
StringBuilder temp = new StringBuilder();

for(int i=0; i<message.length(); i++) {
char c = (char)(message.charAt(i) + 3);

if(c >= 'x') {
c = (char)(message.charAt(i) - 23);
} else {
c = (char)(message.charAt(i) + 3);
}

temp.append(c);
}

return temp.toString();
}



private static String decrypt(String message) {
StringBuilder temp = new StringBuilder();

for(int i=0; i<message.length(); i++) {
char c = (char)(message.charAt(i) - 3);

// HELLO WORLD
// KHOOR ZRUOG

if(c > 'x') {
c = (char)(message.charAt(i) + 26);
} else {
c = (char)(message.charAt(i) - 3);
}

temp.append(c);
}

return temp.toString();
}

输出:

Text: ABCDEFGHILMNOPQRSTU hello giordano WORLD HOW wxyZ XyZ XYZ YOU  xyz
Encrypted: DEFGHIJKLOPQRSTUVWX#khoor#jlrugdqr#ZRUOG#KRZ#`ab]#[b]#[\]#\RX##abc
Decrypted: ABCDEFGHILMNOPQRSTU hello giordano WORLD HOW ]^_Z X_Z XYZ YOU ^_`

预期输出:

Text: ABCDEFGHILMNOPQRSTU hello giordano WORLD HOW wxyZ XyZ XYZ YOU  xyz
Encrypted: DEFGHIJKLOPQRSTUVWX#khoor#jlrugdqr#ZRUOG#KRZ#`ab]#[b]#[\]#\RX##abc
Decrypted: ABCDEFGHILMNOPQRSTU hello giordano WORLD HOW wxyZ XyZ XYZ YOU xyz

最佳答案

您仅在小情况下遇到的问题是因为您已在加密中编写了此代码

        if(c >= 'x') {
c = (char)(message.charAt(i) - 23);
} else {
c = (char)(message.charAt(i) + 3);
}

这个用于解密

        if(c > 'x') {
c = (char)(message.charAt(i) + 26);
} else {
c = (char)(message.charAt(i) - 3);
}

它们只处理小“x”,而对于大写“X”,您还没有编写任何此类条件。因此,如果您从函数中删除上述代码,它将开始工作。但这不会是凯撒密码,就此而言,您可以从“如何按循环顺序遍历”开始寻找。

关于java - 凯撒密码Java解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59056596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com