14. 암호화 도구
Medium
바이브코딩
문제 설명
[문제]
문자열 인코딩/디코딩과 시저 암호를 처리하는 MCP(Model Context Protocol, AI가 호출하는 함수 모음) 서버를 구현하세요. Base64는 임의의 데이터를 알파벳·숫자·일부 기호로만 표현하는 인코딩 방식이고, 시저 암호는 알파벳을 일정 칸수만큼 밀어 바꾸는 고전 암호입니다.
[구현할 함수]
- encode_base64(text: str) -> str
문자열을 Base64로 인코딩한 결과 문자열을 반환한다.
- decode_base64(encoded: str) -> str
Base64 문자열을 원문으로 디코딩한 결과 문자열을 반환한다.
- caesar_cipher(text: str, shift: int = 3, mode: str = "encrypt") -> str
알파벳을 shift 칸만큼 밀어 암호화/복호화한 문자열을 반환한다. mode="encrypt"면 뒤로(Z 다음은 A로 wrap), mode="decrypt"면 앞으로(A 이전은 Z로 wrap) 민다.
[입력·상태]
- caesar_cipher의 shift 기본값은 3, mode 기본값은 "encrypt".
[제약]
- 시저 암호에서 알파벳이 아닌 문자(공백, 하이픈, 숫자 등)는 그대로 둔다.
- 시저 암호는 대소문자를 유지한다(대문자는 대문자 범위, 소문자는 소문자 범위에서 wrap).
- [힌트] Base64는 표준 라이브러리 사용(Python: base64 / C++: 직접 구현 또는 라이브러리 / Java: java.util.Base64).
[예시]
encode_base64("Hello") -> "SGVsbG8="
decode_base64("SGVsbG8=") -> "Hello"
caesar_cipher("Abc-XYZ", 3, "encrypt") -> "Def-ABC"
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.