0

それで、ASCIIを使用して不明なキーを使用してコマンドライン引数で開かれた暗号化されたテキストファイルを復号化し、それをすべて出力して応答キーを使用してどのように復号化できるか疑問に思っていました。暗号化されたメッセージを実際に印刷できたようですが、キーを見つけて印刷する方法を判断する方法についての手がかりがありません。

int main( int argc, char *argv[]) {
  FILE *fp = stdin;  // defaults
  int  n = 13;
  int shift;
  // process command line
  switch (argc) {
    default:
      fp = fopen(argv[1], "r"); // should check for problems
      n  = atoi(argv[2]);
      break;
  }
  // rotate text
  int c, key;
  int i;
  while( (c = fgetc(fp)) != EOF) {
  // This is where I have managed to make C an integer 
  // and print out the encrypted message using the printf function.
4

1 に答える 1

2

通常、鍵を知らずに復号化することは不可能です。幸いなことに、メッセージは可能な限り最も単純な方法の 1 つで暗号化されます...
Caesar 暗号暗号化は次のように機能します:
* オフセット K を選択
* メッセージ内のすべての文字に対して
** 文字 = 文字 + K

したがって、そのコードを解読したい場合は、K (255) のすべての可能な値を調べて、文字でも数字でもない ASCII コードを生成するすべての可能性を除外することができます (元のメッセージが平易な英語であると仮定します)。

複数のオプションがあるかどうかを判断するためにユーザーの操作が必要になる場合がありますが、オプションは制限されます。

于 2015-03-29T06:43:43.533 に答える