2014-01-31 32 views
0

我有這Vigenère密碼的作品,但它吐出了第一次加密時,我把"Attack at Dawn"(波特)第一。它出來作爲1inuhc Qi Xubf。這是什麼造成的?Vigenère密碼實現輸出一個意想不到的數字

public class vigenere { 

    public static void main(String[] args) { 

     System.out.println(); 
     char[] message = args[0].toCharArray(); 
     int code; 
     int index = 0; 
     code = args[1].charAt(index%args[1].length()) - 96; 
     for(int i = 0; i < message.length; i++){ 
      code = args[1].charAt(index%args[1].length()) - 96; 
      if(65 <= message[i] && message[i] <= 90){ 
       index++; 
       message[i] = (char) (65 + ((message[i] - 65) + code) % 26); 
      } 
      else if(97 <= message[i] && message[i] <= 122){ 
       index++; 
       message[i] = (char) (97 + ((message[i] - 97) + code) % 26); 
      } 
      System.out.print(message[i]); 
     } 
    } 
} 
+0

這必須是我不熟悉的「作品」的新定義。 (哦,等等,我現在記得<插入大型軟件公司>以這種方式使用它:-)) –

+0

你想要的輸出是什麼?我猜測基於http://sharkysoft.com/misc/vigenere的'phmtgb ph wtae'。 –

回答

0

我認爲你輸入的是「黎明突擊」

鍵=波特加密

文本(應該是在所有低的情況下字母右),因爲該行的

code = args[1].charAt(index%args[1].length()) - 96; 

我作爲波特輸入密鑰,並得到您的結果posted.but使用波特,它工作正常。

相關問題