2017-11-25 5 views
2

私はこのコードのビットを持っています。このコードの解読部分はうまく動作せず、HELLOBOYではなくHFFDGRHCを返します。誰もこの問題を解決する方法を知っていますか?この具体例では、モジュロを使ってどのように減分しますか?</p> <p>これは第二次世界大戦中に使用されるエニグマの簡易版である[による不要な盗作を削除]</p> <p>:

エニグマ暗号を模倣:ENIGMAマシンのひねりは、実際には26の異なる回転サイファーが存在し、以前の文字の出力に基づいて各文字に対して新しいサイファーが選択されたことでした。ヒント:前の文字と前の暗号鍵の合計を暗号化に追加します。この情報を使用して、暗号化ではなく復号化する方法を理解してください。

+0

ある「WELL動作していない」の定義 - 入力、予想される出力、および実際の出力は何ですか? –

+0

入力はkey = 1、text = "IZXVWKLW"です。期待される出力はHELLOBOYですが、代わりにHFFDGRHCを出力します。 – ShadowWolf

答えて

1

手がかりがここにある:

は、前の手紙と暗号化前の暗号鍵の合計を追加します。

新しいキーに前のキーを追加していませんでした。

変更キー圧延ラインへ:

key = (key + newLetter) % 26; 

出力は今"HELLOBOY"

+0

その理由はありますか? – ShadowWolf

+0

'sum'部分は復号化ではなく暗号化のヒントとして与えられたので、 – ShadowWolf

+0

@ShadowWolf明らかに(私にとにかく)暗号化中に鍵がロールするならば、復号化のためにもロールバックする必要があります。私は '%26'の部分を推測しています。 – Bohemian

関連する問題

 関連する問題