소개
이 프로젝트에서는 널리 알려진 간단한 암호화 기법인 시저 암호 (Caesar Cipher) 를 구현하는 방법을 배우게 됩니다. 시저 암호는 치환 방식을 사용하여 메시지의 영어 문자를 알파벳 순서에서 N 위치 뒤 또는 앞에 있는 문자로 대체합니다.
👀 미리보기
## Example 1
text = "python"; encryption_text = "ravjqp"
## Example 2
text = "pyThon"; encryption_text = "raVjqp"
## Example 3
text = "Python31"; encryption_text = "Ravjqp31"
## Example 4
text = None; encryption_text = None
🎯 과제
이 프로젝트에서는 다음을 배우게 됩니다:
- 프로젝트 환경을 설정하고 필요한 파일을 만드는 방법
- 문자열의 모든 영어 문자를 오른쪽으로 2 칸 이동시키는 시저 암호화 함수를 구현하는 방법
- 영어 문자, 비영어 문자 및 null 값을 포함한 다양한 유형의 입력을 처리하는 방법
- 다양한 입력 예제를 사용하여 시저 암호화 함수를 테스트하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 시저 암호화 기법의 기본 원리를 이해합니다.
- 표준 또는 타사 라이브러리를 사용하지 않고 Python 에서 시저 암호화 함수를 구현합니다.
- 문자열 조작, 문자 인코딩 및 조건부 로직에 대한 기술을 개발합니다.
- 프로젝트 요구 사항을 충족하는지 확인하기 위해 코드를 테스트합니다.
시저 암호화 구현
이 단계에서는 시저 암호화 함수를 구현합니다.
caesar_cipher.py파일을 엽니다.원하는 기능을 달성하기 위해
caesar_encryption(text)함수를 수정합니다:- 문자열을 입력받아 문자열의 모든 영어 문자를 오른쪽으로 2 칸 이동시킵니다.
- 반각 영어 문자만 변환하고, 다른 내용은 변경하지 않습니다.
- 문자의 대소문자는 변경되지 않아야 합니다. 예를 들어, A 는 C 로, b 는 d 로 변환됩니다.
"""TODO"""주석을 다음 코드로 바꿉니다:
def caesar_encryption(text: str) -> str:
if text is None:
return None
encryption_text = ""
for char in text:
if char.isalpha() and char.isascii():
if char.islower():
encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
else:
encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
else:
encryption_text += char
return encryption_text
이 코드는 프로젝트 요구 사항에 설명된 대로 시저 암호화 알고리즘을 구현합니다.
시저 암호화 테스트
이 단계에서는 몇 가지 예제 입력을 사용하여 시저 암호화 함수를 테스트합니다.
caesar_cipher.py파일의 끝에 다음 코드를 추가합니다:
if __name__ == "__main__":
test_input_text = input()
print(caesar_encryption(test_input_text))
caesar_cipher.py파일을 저장합니다.- 터미널을 열고
/home/labex/project디렉토리로 이동합니다. - 다음 명령을 사용하여
caesar_cipher.py스크립트를 실행합니다:
python3 caesar_cipher.py
- 몇 가지 테스트 입력 텍스트를 입력하고 암호화된 출력을 확인합니다.
요구 사항 검증
이 단계에서는 구현이 프로젝트 요구 사항을 충족하는지 확인합니다.
프로젝트 요구 사항을 검토하고
caesar_encryption(text)함수가 다음을 수행하는지 확인합니다:- 문자열을 입력받아 문자열의 모든 영어 문자를 오른쪽으로 2 칸 이동시킵니다.
- 반각 영어 문자만 변환하고, 다른 내용은 변경하지 않습니다.
- 문자의 대소문자를 유지합니다. 예를 들어, A 는 C 로, b 는 d 로 변환됩니다.
제공된 참조 예제를 사용하여 함수를 테스트합니다:
## Example 1
text = "python"; encryption_text = "ravjqp"
## Example 2
text = "pyThon"; encryption_text = "raVjqp"
## Example 3
text = "Python31"; encryption_text = "Ravjqp31"
## Example 4
text = None; encryption_text = None
- 함수가 모든 테스트 케이스를 올바르게 처리하는지 확인합니다.
축하합니다! 시저 암호 프로젝트를 완료했습니다. 질문이 있거나 추가 지원이 필요한 경우 주저하지 말고 문의하십시오.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



