시저의 암호

janequeen·2024년 6월 3일
def create_caesar_cipher_books(shift):
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    decodebook = {}
    encodebook = {}

    for i in range(len(alphabet)):
        decodebook[alphabet[i]] = alphabet[(i + shift) % len(alphabet)]
        encodebook[alphabet[(i + shift) % len(alphabet)]] = alphabet[i]

    return decodebook, encodebook


def encode_message(message, encodebook):
    encoded_message = ''
    for char in message:
        if char in encodebook:
            encoded_message += encodebook[char]
        else:
            encoded_message += char  # spaces and other non-alphabet characters are unchanged
    return encoded_message


def decode_message(message, decodebook):
    decoded_message = ''
    for char in message:
        if char in decodebook:
            decoded_message += decodebook[char]
        else:
            decoded_message += char  # spaces and other non-alphabet characters are unchanged
    return decoded_message


# 씨저 암호에서 사용될 시프트 값을 설정합니다. 여기서는 3을 사용합니다.
shift = 3

# 암호화 및 복호화 책을 생성합니다.
decodebook, encodebook = create_caesar_cipher_books(shift)

# 평문 메시지를 정의합니다.
plain_message = input()

encoded_message = encode_message(plain_message, decodebook)
print(f'{encoded_message}')

# # 평문을 암호화합니다.
# encoded_message = encode_message(plain_message, decodebook)
# print(f'Encoded Message: {encoded_message}')

# # 암호문을 복호화합니다.
# decoded_message = decode_message(encoded_message, encodebook)
# print(f'Decoded Message: {decoded_message}')

0개의 댓글