trとrot13の問題

trとrot13の問題

OverTheWireのBanditをプレイしています。ステップ11では、このプレーンテキスト翻訳データファイルの使用を要求します"Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh"。解決策はこのコマンドを使用することです。

`tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh"`

ただし、次のオプションが機能しない理由は理解できません。

`tr 'A-Za-z' 'Z-Az-a'`

または

`tr ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba <<<"Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh"`

最初の例は、trがzaとZAの範囲を無効として扱うことに関連していると思います。なぜこれですか?

2番目の例では、コマンドが出力されるのはなぜですか?

Tfi xmuuqyvj eu 5Ti8O4jvgKVhKp8sgjqsIP8CHK6c2ISs

正解の代わりに:

The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

ベストアンサー1

ROT13はアルファベット13桁を移動します。例えば、AとNの位置を変え、BとOの位置を変えるなどです。それは正確にあなたの試みがする仕事であるアルファベットを裏返しません。

構文により、trこの操作が少し混乱する可能性があります。あなたが投稿したROT13エンコーダ/デコーダは、次のように書いて、何が起こっているのかをより明確にすることができます。

tr 'A-MN-Za-mn-z' \
   'N-ZA-Mn-za-m' \
<<< ciphertext

ここでは、対応する文字範囲が互いにどのように関連しているかをよりよく確認できます。

おすすめ記事