Python 으로 레일 펜스 암호 구현하기

PythonBeginner
지금 연습하기

소개

이 프로젝트에서는 텍스트의 문자를 재배열하여 암호문을 생성하는 간단한 암호화 방법인 레일 펜스 암호 (Rail Fence Cipher) 를 구현하는 방법을 배우게 됩니다.

👀 미리보기

Thisatext.issample

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다:

  • Python 프로젝트 디렉토리를 설정하고 필요한 파일을 만드는 방법
  • Python 에서 레일 펜스 암호 알고리즘을 구현하는 방법
  • 구현된 암호화 함수를 테스트하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 할 수 있습니다:

  • 레일 펜스 암호의 기본 원리를 이해합니다.
  • Python 에서 레일 펜스 암호화 알고리즘을 구현합니다.
  • 구현된 암호화 함수의 정확성을 테스트하고 검증합니다.

레일 펜스 암호 구현

이 단계에서는 fence.py 파일에서 레일 펜스 암호화 알고리즘을 구현합니다.

  1. 텍스트 편집기에서 fence.py 파일을 엽니다.
  2. 파일에 다음 코드를 추가합니다:
def rail_fence_cipher(text: str) -> str:
    """
    레일 펜스 암호 방법을 사용하여 텍스트를 암호화합니다.

    Args:
        text (str): 암호화할 텍스트.

    Returns:
        str: 암호화된 텍스트.
    """
    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. fence.py 파일을 저장합니다.

✨ 솔루션 확인 및 연습

레일 펜스 암호 테스트

이 단계에서는 fence.py 파일을 실행하여 구현된 레일 펜스 암호를 테스트합니다.

  1. 터미널을 열고 프로젝트 디렉토리로 이동합니다.
  2. fence.py 파일을 실행합니다:
python3 fence.py
  1. 출력은 암호화된 텍스트여야 합니다:
Thisatext.issample

축하합니다! Python 에서 레일 펜스 암호를 성공적으로 구현했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.