當前我正在使用異或加密編程聊天。但今天我遇到了一個問題。 Windows中的加密與Linux中的不同。在Linux下,聊天正常運行,但在Windows下不行。異或用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的
現在如何解決它的測試(在這一刻我爲加密旁路但這不是我的目標,我想要兩個系統加密)?我的源錯了嗎?
System.getProperty(「os.name」)。contains(「Windows」)在Windows機器上是成立的,所以它明確地禁用了你的加密。你有一些其他代碼可以刪除這段代碼或者使用其他方法嗎? – Makoto
擁有xor加密就像沒有加密。你知道嗎? –
你能舉一個例子,說明Windows上出了什麼問題嗎?即當你用新的XOR_c(42)編碼「abc」,然後用相同的XOR_c解碼它時,它是否不返回「abc」? – user829755