2016-04-10 4 views
0

私はpolybiusの四角形を使用して私のプログラムの暗号化に取り組んできました。私はこれを働かせていますが、単語が暗号化されているときは、複数回出現する文字の代替番号を選択する必要があると言います。JAVA - 配列を使用した暗号化

たとえば、暗号化されている場合は 'E'を15または61で表す必要があり、代替する必要があります。私は解決策を見つけるのに苦労しており、どんなフィードバックも素晴らしいだろう。ここで

は、私のソースコードは、現在、次のとおりです。

public class Encryption { 
private static char polybiusSquare[][] = { { 'A', 'B', 'C', 'D', 'E', 'F' }, 
              { 'G', 'H', 'I', 'K', 'L', 'M' }, 
              { 'N', 'O', 'P', 'Q', 'R', 'S' }, 
              { 'T', 'U', 'V', 'W', 'X', 'Y' }, 
              { 'Z', 'E', 'T', 'A', 'O', 'N' }, 
              { 'E', 'T', 'A', 'O', 'J', ' ' } }; 

public static String encryptMessage(String message) { 
    String encipheredMessage = ""; 
    for (int x = 0; x < message.length(); x++) { 
     encipheredMessage = encipheredMessage + encryptCharacter(message.charAt(x)); 
    } 
    return encipheredMessage; 
} 

public static String encryptCharacter(char currentChar) { 
    String returnGridRef = ""; 
    for (int x = 0; x < 6; x++) { 
     for (int y = 0; y < 6; y++) { 
      if (currentChar == polybiusSquare[x][y]) { 
       returnGridRef = Integer.toString(x + 1) + Integer.toString(y + 1); 
      } 
     } 
    } 
    if (returnGridRef.equals("")) 
     return "00"; 
    else 
     return returnGridRef; 
} 
+0

数日で新しいユーザーから見た品質と質問の質ははるかに優れています。 – MikeC

答えて

0

が繰り返さ文字に使用される値の次のセットを保持するデータ構造を維持します。繰り返し文字の値のみを保持します。初期化する。

'encryptCharacter'では、引数がこれらの文字のいずれかであるかどうかを確認し、そうであれば、データ構造の値を使用し、次回使用する値(そのcharのみ)で更新します。

あなたのQとコードの品質を考えると、私はあなたがここからそれを取ることができると期待しています。

+0

ありがとうございました。 – Kallendo96

+0

私はこれを見てきましたが、私はまだ苦労しています。私はまだJavaにはまだ新しいです。これがどのように行われたかの例がありますか? – Kallendo96

+0

[Javaのマップデータ構造](https://examples.javacodegeeks.com/java-basics/java-map-example/)の例を示します。私はあなたが参考にしている、または学んでいる良いJavaの本やWebサイトを持っていることを願っています。あなたがSOや他のフォーラムで質問を投稿することによって学ぶことを試みるなら、それは長くて難しい道になるでしょう。 – MikeC

関連する問題