目錄
- 1.使用說明
- 2.運作截圖
- 3.總體設計
- 4.類及函數
- 5.源碼
1.使用說明
本程式使用eclipse Java編寫。使用該程式可利用eclipse打開源代碼檔案夾,由于使用了有道詞典API(使用時需要自己申請,修改API調用源碼中的兩個變量),是以在運作時需要聯網,然後運作Main.java即可輸出結果。可對常量明文plaintext和密鑰key進行修改,重新輸出。
2.運作截圖
3.總體設計
明文可以是一個單詞或者是單詞間以空格為分割的句子,加密時逐個對加密的句子(單詞)的字元進行加密。解密時可以用加密的函數,隻不過傳入的key是負數。通過暴力破解解密時,先判斷該密鑰所生成的明文的句子是否可以正确翻譯出。這裡利用有道詞典API,通過觀察傳回的json資料的translation鍵值進行判斷。若傳回的是原字元串,則翻譯失敗,不符合;若符合則添加到動态數組。
之後對上面獲得的符合條件的句子周遊,進行逐個查詞,通過觀察有道詞典API傳回資料的isWord和web鍵值判斷該字元串是否是單詞,如果不是則剔除該單詞所在的句子。如此便得到最後的結果。
4.類及函數
- YouDaoDictAPI.java,有道詞典文本翻譯API。JSONObject getResult(String q)設定調用API需要向接口發送的字段來通路服務,傳入翻譯的英文傳回擷取的JSON格式資料。
- Encryption.java,凱撒加密算法。String caesarEncryption(String plaintext, int key)傳入明文(密文)、密鑰,輸出密文(明文)。
- Decryption.java,凱撒解密算法。ArrayList caesarDecryption(String ciphertext),傳入密文,傳回明文。
- Main.java,凱撒加密/解密算法主函數。
5.源碼
https://gitee.com/zhz000/caesar-algorithm
https://github.com/zhz000/caesar-algorithm