소개
이 프로젝트에서는 "Clear Code Encryption"이라는 간단한 암호화 및 복호화 알고리즘을 구현하는 방법을 배우게 됩니다. 이 암호화 방식은 청나라 말기 중국의 초기 전신 통신 시스템에서 사용되었습니다.
👀 미리보기
## Example 1
numb = 1530; encryption_text = "0383"
## Example 2
numb = 0; encryption_text = "9853"
## Example 3
numb = 12345; encryption_text = None
🎯 과제
이 프로젝트에서는 다음을 배우게 됩니다.
- 암호화 방식과 그 기본 원리를 이해하는 방법
- 암호화를 수행하기 위해
plain_code_encryption(numb)함수를 구현하는 방법 - 다양한 입력을 사용하여 암호화 함수를 테스트하는 방법
- 사용자 입력을 처리하고 암호화 함수를 호출하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다.
- "Clear Code Encryption" 방식과 그 역사적 맥락을 설명할 수 있습니다.
- Python 을 사용하여 기본적인 암호화 및 복호화 알고리즘을 구현할 수 있습니다.
- 다양한 입력 시나리오로 암호화 함수를 테스트하고 검증할 수 있습니다.
- 사용자 입력과 출력을 암호화 스크립트에 통합할 수 있습니다.
암호화 방법 이해
이 단계에서는 "Clear Code Encryption" 프로젝트에서 사용되는 암호화 방식에 대해 배우게 됩니다.
암호화 방식은 다음과 같이 작동합니다.
- 평문 코드의 네 자리 숫자는 각각 암호화 키의 네 자리 숫자에 더해집니다.
- 각 숫자 덧셈의 경우, 합이 10 이상이면 10 을 생략하고 일의 자리 숫자만 유지합니다.
- 복호화 시에는 복호화 키의 네 자리 숫자를 뺀 비밀번호를 사용하여 평문 코드를 얻고 해당 텍스트를 찾습니다.
예를 들어, 평문 코드가 1530 이고 암호화 키가 9853 이라고 가정해 보겠습니다.
- 첫 번째 숫자 더하기: 1 + 9 = 10, 10 을 0 으로 처리합니다.
- 두 번째 숫자 더하기: 5 + 8 = 13, 10 을 생략하고 3 을 유지합니다.
- 세 번째 숫자 더하기: 3 + 5 = 8.
- 네 번째 숫자 더하기 (0 + 3 = 3).
최종 암호화된 텍스트는 "0383"입니다.
plain_code_encryption(numb) 함수 구현
이 단계에서는 plain_code.py 파일에서 plain_code_encryption(numb) 함수를 구현합니다.
- 코드 편집기에서
plain_code.py파일을 엽니다. plain_code_encryption(numb)함수를 찾습니다.- 다음 작업을 수행하도록 함수를 구현합니다.
- 0 에서 9999 사이의 임의의 숫자 (0 과 9999 포함) 를 입력하고, 9853 을 더하여 4 자리 숫자 (
str형식) 를 얻은 후 반환합니다. - 입력 숫자가 4 자리 미만인 경우, 누락된 자릿수를 0 으로 채웁니다. 예를 들어, 입력 숫자가 32 인 경우 0032 로 처리해야 합니다.
- 같은 위치의 숫자를 더합니다. 합이 10 이상이면 10 을 생략하고 일의 자리 숫자만 유지합니다.
- 입력 숫자가 0 에서 9999 사이가 아니면
None을 반환합니다.
- 0 에서 9999 사이의 임의의 숫자 (0 과 9999 포함) 를 입력하고, 9853 을 더하여 4 자리 숫자 (
다음은 plain_code_encryption(numb) 함수에 대한 완성된 코드입니다.
def plain_code_encryption(numb: int) -> str:
if numb < 0 or numb > 9999:
return None
numb_str = str(numb).zfill(4)
key_str = "9853"
encryption_text = "".join(
str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
)
return encryption_text
plain_code_encryption(numb) 함수 테스트
이 단계에서는 제공된 예제를 사용하여 plain_code_encryption(numb) 함수를 테스트합니다.
- 코드 편집기에서
plain_code.py파일을 엽니다. - 파일 끝에 다음 코드를 추가합니다.
if __name__ == "__main__":
print(plain_code_encryption(1530)) ## Output: "0383"
print(plain_code_encryption(0)) ## Output: "9853"
print(plain_code_encryption(12345)) ## Output: None
- 파일을 저장하고
python3 plain_code.py명령을 사용하여 스크립트를 실행합니다. - 출력이 예상 결과와 일치하는지 확인합니다.
사용자 입력 처리
이 단계에서는 스크립트를 수정하여 사용자 입력을 받아들이고, 사용자가 제공한 숫자로 plain_code_encryption(numb) 함수를 호출합니다.
- 코드 편집기에서
plain_code.py파일을 엽니다. - 이전 단계에서 추가한 코드를 찾아 다음 코드로 바꿉니다.
if __name__ == "__main__":
txt = int(input())
print(plain_code_encryption(txt))
- 파일을 저장하고
python3 plain_code.py명령을 사용하여 스크립트를 실행합니다. - 메시지가 표시되면 0 에서 9999 사이의 숫자를 입력하면 스크립트가 암호화된 텍스트를 출력합니다.
축하합니다! "Clear Code Encryption" 프로젝트를 완료했습니다. 암호화 방법을 구현하고 다양한 입력을 사용하여 테스트하는 방법을 배웠습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



