解説
XOR(排他的論理和)には「同じ値で2回XORすると元に戻る」という性質があります。つまり A XOR 鍵 = 暗号文、暗号文 XOR 鍵 = A となり、暗号化と復号にまったく同じ操作が使えます。
Pythonでは ^ がXOR演算子です。各文字を数値コードに直して鍵とXORするだけで暗号化できます。
実用の暗号でもXORは基本部品ですが、鍵が短く使い回されると破られるため、鍵の管理が決定的に重要です。
書き方
^ — XOR(排他的論理和)演算子。同じ値で2回XORすると元に戻る。 ・ord(文字)/chr(コード): 文字⇄文字コードの変換。 ・[ord(ch) ^ k for ch in text]: 各文字を鍵とXORするリスト内包表記。 ・"".join(...): 文字のリストを文字列に連結。
書いて動かす
この回の課題
同じ鍵で文字列をXOR暗号化し、もう一度同じ鍵をかけて復号できることを確かめてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。