天天看點

編寫程式,利用Java實作凱撒(caesar)算法的加密和解密1.使用說明2.運作截圖3.總體設計4.類及函數5.源碼

目錄

  • 1.使用說明
  • 2.運作截圖
  • 3.總體設計
  • 4.類及函數
  • 5.源碼

1.使用說明

本程式使用eclipse Java編寫。使用該程式可利用eclipse打開源代碼檔案夾,由于使用了有道詞典API(使用時需要自己申請,修改API調用源碼中的兩個變量),是以在運作時需要聯網,然後運作Main.java即可輸出結果。可對常量明文plaintext和密鑰key進行修改,重新輸出。

2.運作截圖

編寫程式,利用Java實作凱撒(caesar)算法的加密和解密1.使用說明2.運作截圖3.總體設計4.類及函數5.源碼

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