Python でレールフェンス暗号(Rail Fence Cipher)を実装する

PythonBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、テキスト内の文字を並び替えて暗号文を作成する単純な暗号化手法であるレールフェンス暗号(Rail Fence Cipher)の実装方法を学びます。

👀 プレビュー

Thisatext.issample

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • Python プロジェクトディレクトリを設定し、必要なファイルを作成する方法
  • Python でレールフェンス暗号(Rail Fence Cipher)アルゴリズムを実装する方法
  • 実装した暗号化関数をテストする方法

🏆 達成目標

このプロジェクトを完了した後、以下のことができるようになります。

  • レールフェンス暗号(Rail Fence Cipher)の基本原理を理解する
  • Python でレールフェンス暗号(Rail Fence Cipher)の暗号化アルゴリズムを実装する
  • 実装した暗号化関数の正しさをテストして検証する

レールフェンス暗号(Rail Fence Cipher)を実装する

このステップでは、fence.py ファイルにレールフェンス暗号(Rail Fence Cipher)の暗号化アルゴリズムを実装します。

  1. テキストエディタで fence.py ファイルを開きます。
  2. 以下のコードをファイルに追加します。
def rail_fence_cipher(text: str) -> str:
    """
    Encrypts the text using the Rail Fence Cipher method.

    Args:
        text (str): The text to be encrypted.

    Returns:
        str: The encrypted text.
    """
    if text is None or len(text.strip()) == 0:
        return None
    group = text.split()
    grouped_list = [group[i : i + 2] for i in range(0, len(group), 2)]

    first_part = [sublist[0] for sublist in grouped_list]
    second_part = [sublist[1] for sublist in grouped_list if len(sublist) > 1]

    encryption_text = "".join(first_part + second_part)
    return encryption_text


if __name__ == "__main__":
    print(rail_fence_cipher("This is a sample text."))
  1. 以下の手順に従って rail_fence_cipher 関数を実装します。

    • 入力された textNone または空文字列であるかどうかを確認します。もしそうであれば、None を返します。
    • text を 2 文字ずつのグループに分割します。
    • 各グループから最初の文字を抽出し、リストに格納します。
    • 各グループから 2 番目の文字を抽出し、リストに格納します。
    • 2 つのリストを連結して暗号化されたテキストを形成します。
    • 暗号化されたテキストを返します。
  2. fence.py ファイルを保存します。

レールフェンス暗号(Rail Fence Cipher)をテストする

このステップでは、fence.py ファイルを実行して、実装したレールフェンス暗号(Rail Fence Cipher)をテストします。

  1. ターミナルを開き、プロジェクトディレクトリに移動します。
  2. fence.py ファイルを実行します。
python3 fence.py
  1. 出力は暗号化されたテキストになるはずです。
Thisatext.issample

おめでとうございます!Python でレールフェンス暗号(Rail Fence Cipher)を正常に実装しました。

まとめ

おめでとうございます!このプロジェクトを完了しました。LabEx でさらに多くの実験を行い、スキルを向上させることができます。

✨ 解答を確認して練習✨ 解答を確認して練習