# 암호화 함수
def encrypt(key, text):
    result = []
    key_length = len(key)
    for i, char in enumerate(text):
        shift = ord(key[i % key_length])  # 키의 유니코드 값으로 이동량 계산
        new_char = chr((ord(char) + shift) % 1114111)  # 유니코드 전체 범위
        result.append(new_char)
    return ''.join(result)
# 복호화 함수
def decrypt(key, text):
    result = []
    key_length = len(key)
    for i, char in enumerate(text):
        shift = ord(key[i % key_length])
        new_char = chr((ord(char) - shift) % 1114111)
        result.append(new_char)
    return ''.join(result)
# 메인 프로그램
def main():
    print(" ")
    
    key = input("첫 번째 문자열(Key)을 입력하세요: ")
    text = input("두 번째 문자열(문자열)을 입력하세요: ")
    mode = input("세 번째 문자열(암호화 또는 복호화 여부)을 입력하세요 (encrypt/decrypt): ").strip().lower()
    print("\nUCC?key=%s" % key)
    
    if mode == 'encrypt':
        result = encrypt(key, text)
        print("암호화된 문자열:", result)
    elif mode == 'decrypt':
        result = decrypt(key, text)
        print("복호화된 문자열:", result)
    else:
        print("잘못된 모드 입력입니다. 'encrypt' 또는 'decrypt'를 입력하세요.")
    main()
print("UCC, Unicode Caesar Cipher")
print("Made by gwilee, CC BY-NC")
main()
본 코드의 저작권은 gwilee에게 있습니다. CC BY-NC (저작자표시-비영리)
'코딩(Python)' 카테고리의 다른 글
| 영재원 만다라트 (0) | 2025.09.03 | 
|---|---|
| Python에서 유티코드 인식 (0) | 2024.07.11 |