gpt4 book ai didi

java - XOR Encrypt与Linux和Windows不同

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

目前我正在使用 XOR-Encryption 编写聊天程序。但是今天我遇到了一个问题。 Windows 下的加密与 Linux 下的不同。在 Linux 下,聊天可以正常运行,但在 Windows 下则不能。

这里是类:

class XOR_c {
private boolean active = true;
private int key;

// Constructor
public XOR_c(int k){
if (System.getProperty("os.name").contains("Windows")) {
JOptionPane.showMessageDialog(null,"No encryption!","Client", JOptionPane.CANCEL_OPTION);
this.active = false;
}

key = k;
}

public String encode(String s) {
if (active == false) return s;

char[] c = s.toCharArray();
for (int i=0; i<c.length; i++)
c[i] = (char)(c[i]^key);

return new String(c);
}

public String decode(String s){
return encode(s);
}


}

这已经在 openSuse、Debian 和 Windows 7 上进行了测试。

现在如何修复它(此时我绕过了加密,但这不是我的目标,我想要两个系统都加密)?我的来源有误吗?

最佳答案

我猜这是一个编码问题:字符集在 Windows 和 Linux 上可能不同。我建议

byte[] bytes = s.getBytes(charset);
...
return new String(bytes, charset)

,其中 charset 是一些明确的字符集。

关于java - XOR Encrypt与Linux和Windows不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051250/

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