본문 바로가기

코딩(Python)

UCC (Unicode Caesar Cipher)

# 암호화 함수
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)' 카테고리의 다른 글

Python에서 유티코드 인식  (0) 2024.07.11