2017-03-27 34 views
-1

我正在開發一個項目的加密/解密程序。對於加密方法,用戶輸入一個密鑰(全部小寫無空格),文件中的所有字母都按該密鑰中的每個字母(a = 0,b = 1,c = 2等)的值進行移位。使字符串中的另一個字符增加char

示例: 密鑰= ABC

文件:在一個文件中

加密文件的話:wptdt KN b HIMG

'W' 增加了 'A'(0),使其保持'W'。

「O」由「B」(1),所以它增加了1個信關鍵中的最後一個字母之後使用「P」等

偏移,密鑰返回到第一信。此外,空格被忽略。

我目前困惑於如何增加密鑰中每個字母的字母。

public static String encryptLine(

任何幫助,將不勝感激! 感謝

+0

分享您的輸入和預期的輸出。 – Vaibs

+0

[增加一個char值的可能的重複](http://stackoverflow.com/questions/22574768/increase-a-char-value-by-one) – Tom

+0

你在「加密」中跳過空格嗎? –

回答

-1

試試這個:

Source Code

public static String encrypt(String plainText, String encKey) { 
    StringBuilder encryptedText = new StringBuilder(); 
    char[] encArray = encKey.toCharArray(); 
    int encArrayLen = encArray.length; 
    int cnt = 0; 
    for (int i = 0; i < plainText.length(); i++) { 
     if (plainText.charAt(i) != ' ') { 
      char c = (char) (plainText.charAt(i) + (encArray[cnt] - 'a')); 
      encryptedText.append(c); 
     } else { 
      encryptedText.append(plainText.charAt(i)); 
      cnt=cnt-1; 
     } 
     cnt++; 
     if (cnt == encArrayLen) { 
      cnt = 0; 
     } 
    } 
    return encryptedText.toString(); 
} 
+0

有沒有辦法在本網站外與您聯繫?或者,如果您收到此通知,您能否通知我 – Levy

0

嘗試使用此代碼

public static String encrypt(String k,String l){ 
     String ans=""; 
     int index=0; 
     for(int i=0;i<l.length();i++){ 
      if(l.charAt(i)==' '){ 
       continue; 
      } 
      ans=ans+Character.toString((char)((int)l.charAt(i)+((int)k.charAt(index)-97))); 
      if(index==k.length()-1){ 
       index=0; 
      }else{ 
       index++; 
      } 
     } 
     return ans; 

    } 
+0

有沒有辦法在本網站之外與您聯繫?或者如果您收到此通知,您能通知我嗎? – Levy

0
public static String encryptLine(String key, String line) { 
    final StringBuffer encryptedLine = new StringBuffer(); 

    IntStream.range(0, line.length()).forEach(i->{ 
     int nonSpace = ((int) line.chars().limit(i+1).filter(j -> j == ' ').count()); 
     encryptedLine.append(line.charAt(i) == ' '? line.charAt(i): (char) (key.charAt((i - nonSpace) % key.length()) - 'a' + line.charAt(i))); 
    }); 

    return encryptedLine.toString(); 
} 

文本:在一個文件中的單詞 - > wptdt KN b HIMG

但是,這只是一個快速提示。對於項目使用,預計會有更多檢查。

相關問題