-2
我想製作一個程序來解密文本文件中的加密信息。關鍵是字母數字顛倒,例如a = 26,b = 25,c = 24等等。如何使Java程序解密文本文檔中的消息?
我已經有了加密郵件的手段,但是我遇到了麻煩,無法找到解密郵件的方法。我希望儘可能簡單,並且在涉及Java時我仍然是一個粗暴的磨合。
我想製作一個程序來解密文本文件中的加密信息。關鍵是字母數字顛倒,例如a = 26,b = 25,c = 24等等。如何使Java程序解密文本文檔中的消息?
我已經有了加密郵件的手段,但是我遇到了麻煩,無法找到解密郵件的方法。我希望儘可能簡單,並且在涉及Java時我仍然是一個粗暴的磨合。
這甚至可能嗎?你可能會得到一段匹配「242424」的字符串 - 你怎麼知道什麼是C和什麼是W/Y?
zackehh提出了一個很好的觀點。一種解決方案是在編碼數字之間添加分隔符。例如,242424
可能會變成2,4,24,2,4
並且不再含糊不清。此功能在您做出此更改的假設下運行:
public String decode(String decode) {
String[] keyArray = {"z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j", "i", "h", "g", "f", "e", "d", "c", "b", "a", "z"};
String[] split = decode.split(",");
StringBuilder decoded = new StringBuilder();
for (String part : split) {
int code = Integer.parseInt(part);
decoded.append(keyArray[code - 1]);
}
return decoded.toString();
}
該代碼非常乾淨,但它沒有任何錯誤處理。
非常規輸入會出現問題,例如1,2,a,3
在嘗試解析a
時會導致異常。例如,如果傳入1,2,344
,則會拋出另一個異常,例如,因爲344
不是代碼中的有效鍵(> 26不是字母)。
如果您選擇添加字符串分隔符的路徑,則添加錯誤處理作爲練習留給讀者。
你面臨的具體問題是什麼? – Pshemo 2015-02-24 03:35:23
你的代碼在哪裏?你有沒有嘗試過呢? – Prudhvi 2015-02-24 03:35:37
沒有代碼,你不可能得到答案。但是爲了讓你開始,請用手寫出來,並考慮你正在採取什麼行動來解密它。然後思考這些行爲如何轉化爲代碼。 – Jon 2015-02-24 03:36:13