トラック
/
AWK
AWK
/
演習
/
回転暗号
回転暗号

回転暗号

初級

説明

シーザー暗号とも呼ばれる回転暗号を実装してみましょう。

シーザー暗号は、0から26までの整数の鍵を使って、アルファベットのすべての文字をずらす、単純なシフト暗号です。 鍵に0または26を使うと、剰余演算により、常に同じ結果になります。 文字は、鍵の値と同じ数だけずれます。

回転暗号の一般的な表記はROT + <key>です。 最もよく使われる回転暗号はROT13です。

ROT13をラテンアルファベットに適用すると、次のようになります。

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: nopqrstuvwxyzabcdefghijklm

回転暗号は、鍵の候補が27通りあり、そのうち使えるのが25通りなので、アトバシュ暗号よりも強力です。

暗号文は、スペースや句読点も含めて、入力と同じ書式で書き出されます。

例

  • ROT5はomgをtrlにします
  • ROT0はcをcにします
  • ROT26はCoolをCoolにします
  • ROT13はThe quick brown fox jumps over the lazy dog.をGur dhvpx oebja sbk whzcf bire gur ynml qbt.にします
  • ROT13はGur dhvpx oebja sbk whzcf bire gur ynml qbt.をThe quick brown fox jumps over the lazy dog.にします

ASCII値

この演習では、ASCII文字とその数値とを相互に変換する必要があります。GNU awkのordchr拡張機能がこの機能を提供しています。ord()関数とchr()関数を追加するには、ファイルの先頭に@loadディレクティブを追加して、ordchr拡張機能を読み込みます:

@load "ordchr"

出典

Wikipediaリンクは新しいウィンドウまたはタブで開きます
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
AWK Exercism

回転暗号を始める準備はできましたか?

Exercismに登録すれば、3個のコンセプト92個の演習、そして本物の人間によるメンタリングとともに、AWKを学んでマスターできます。すべて無料です。