2015-02-24 47 views
-2

我想製作一個程序來解密文本文件中的加密信息。關鍵是字母數字顛倒,例如a = 26,b = 25,c = 24等等。如何使Java程序解密文本文檔中的消息?

我已經有了加密郵件的手段,但是我遇到了麻煩,無法找到解密郵件的方法。我希望儘可能簡單,並且在涉及Java時我仍然是一個粗暴的磨合。

+1

你面臨的具體問題是什麼? – Pshemo 2015-02-24 03:35:23

+0

你的代碼在哪裏?你有沒有嘗試過呢? – Prudhvi 2015-02-24 03:35:37

+0

沒有代碼,你不可能得到答案。但是爲了讓你開始,請用手寫出來,並考慮你正在採取什麼行動來解密它。然後思考這些行爲如何轉化爲代碼。 – Jon 2015-02-24 03:36:13

回答

1

這甚至可能嗎?你可能會得到一段匹配「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不是字母)。

如果您選擇添加字符串分隔符的路徑,則添加錯誤處理作爲練習留給讀者。

相關問題