這樣做的目的不是高度安全相關,關鍵將會很長,所以我只是想對字符串使用簡單的XOR加密。是只需在JavaScript中進行XOR加密並在Java中進行解密
好了,客戶端的JavaScript上進行如下:
function dc_encrypt(str, key)
{
var ord = []; var res = "";
var i;
for (i = 1; i <= 255; i++) {ord[String.fromCharCode(i)] = i}
for (i = 0; i < str.length; i++)
res += String.fromCharCode(ord[str.substr(i, 1)]^ord[key.substr(i % key.length, 1)]);
return(res);
}
和Java是是:
public String dc_decrypt(String str, String key)
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i < str.length(); i++)
sb.append((char)(str.charAt(i)^key.charAt(i % (key.length()))));
return(sb.toString());
}
很不幸,這會產生一些非常奇怪的結果。一些字母在JS中加密後會有所不同,通過POST發送結果並使用Java解密。 在任何情況下,它似乎都不可靠。
我認爲這個問題必須與編碼有關...有人知道一個更可靠的解決方案嗎?
巨大的感謝提前! :)
您能否提供樣本輸入和兩種實現中的不同輸出? – RealSkeptic
嘗試使用Base64編碼您的加密輸出,然後使用Java對其進行解碼 –