소개
이 프로젝트에서는 텍스트의 문자를 재배열하여 암호문을 생성하는 간단한 암호화 방법인 레일 펜스 암호 (Rail Fence Cipher) 를 구현하는 방법을 배우게 됩니다.
👀 미리보기
Thisatext.issample
🎯 과제
이 프로젝트에서는 다음을 배우게 됩니다:
- Python 프로젝트 디렉토리를 설정하고 필요한 파일을 만드는 방법
- Python 에서 레일 펜스 암호 알고리즘을 구현하는 방법
- 구현된 암호화 함수를 테스트하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 할 수 있습니다:
- 레일 펜스 암호의 기본 원리를 이해합니다.
- Python 에서 레일 펜스 암호화 알고리즘을 구현합니다.
- 구현된 암호화 함수의 정확성을 테스트하고 검증합니다.
레일 펜스 암호 구현
이 단계에서는 fence.py 파일에서 레일 펜스 암호화 알고리즘을 구현합니다.
- 텍스트 편집기에서
fence.py파일을 엽니다. - 파일에 다음 코드를 추가합니다:
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."))
다음 단계를 따라
rail_fence_cipher함수를 구현합니다:- 입력
text가None이거나 빈 문자열인지 확인합니다. 그렇다면None을 반환합니다. text를 두 글자씩 그룹으로 나눕니다.- 각 그룹에서 첫 번째 문자를 추출하여 목록에 저장합니다.
- 각 그룹에서 두 번째 문자를 추출하여 목록에 저장합니다.
- 두 목록을 연결하여 암호화된 텍스트를 형성합니다.
- 암호화된 텍스트를 반환합니다.
- 입력
fence.py파일을 저장합니다.
레일 펜스 암호 테스트
이 단계에서는 fence.py 파일을 실행하여 구현된 레일 펜스 암호를 테스트합니다.
- 터미널을 열고 프로젝트 디렉토리로 이동합니다.
fence.py파일을 실행합니다:
python3 fence.py
- 출력은 암호화된 텍스트여야 합니다:
Thisatext.issample
축하합니다! Python 에서 레일 펜스 암호를 성공적으로 구현했습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



