본문 바로가기

Python

[Python] Caeser 암호 파이썬 구현

Caeser 암호

암호학의 역사에서 알아본 시저 함수를 파이썬으로 구현해보았습니다.

 

k = int(input("Enter k:")) #키 값을 입력
s = list(input("Sentence to encrypt:")) #문장 입력

for i in range(len(s)) :
    if  ord(s[i]) < 65 or 90 < ord(s[i]) < 97 or ord(s[i]) > 122 : #특수문자 제외
        continue
    
    elif 64 < ord(s[i]) < 91 and ord(s[i]) + k > 90 : #대문자인 경우 범위 초과
        s[i] = ord(s[i]) + k - 26
        s[i] = chr(s[i])

    elif 96 < ord(s[i]) < 123 and ord(s[i]) + k > 122 : #소문자인 경우 범위 초과
        s[i] = ord(s[i]) + k - 26
        s[i] = chr(s[i])
        
    else : #그 밖의 경우에는 그냥 치환
        s[i] = ord(s[i]) + k 
        s[i] = chr(s[i])

print("Decrypted sentence:" + ''.join(s)) #리스트를 다시 합침

 

먼저 키 값과 문장을 입력받습니다.

 

다음 이를 아스키 코드로 변환하여(아래에 표 참고)

더보기
변환 표

특수문자를 제외하고 대문자와 소문자를 키 값 만큼 이동시켜 변환합니다.

 

마지막으로 문장을 합쳐 출력합니다.