2017-03-09 21 views
1

如何修改以下程序,以便使用八個字符的字符串作爲密鑰?使用按位運算符編碼密碼類

public class SelfTest { 

    public static void main(String[] args) { 
     String msg = "This is a test"; 
     String encmsg = ""; 
     String decmsg = ""; 
     int key = 88; 
     System.out.println("Original msg: " + msg); 
     for(int i=0; i< msg.length(); i++){ 
      encmsg = encmsg + (char) (msg.charAt(i)^key); 
     } 
     System.out.println("Encode msg: " + encmsg); 

    } 
} 
+1

爲什麼正好八? – Vallentin

+2

@Vallentinhis家庭作業可能告訴他使用8 –

+0

是的,這是我的作業。 –

回答

0

您可以單獨使用密鑰中的每個字符,並在完成時環繞它。例如:

for(int i=0; i< msg.length(); i++){ 
     encmsg = encmsg + 
       (char) (msg.charAt(i)^(key.charAt(i % key.length()))); 
    } 
+1

我曾考慮過在密鑰中單獨使用每個字符,但我無法弄清楚我應該使用這些字符的順序是什麼?你的建議有幫助!謝謝! –