나의 기록, 현진록

[Python] 암호수학 카이사르 암호(시저 암호) 방식의 복호화 본문

Programming/Algorithm & Data Structure

[Python] 암호수학 카이사르 암호(시저 암호) 방식의 복호화

guswlsdk 2017. 6. 5. 01:19
반응형

# 복호화 함수 구현

def decoding (encode_str, n):        # 암호화문, 암호키

    

    decode_str=""

    

    for i in encode_str:         # D_str의 글자 수만큼 반복 (D_str의 문자열에서 한글자씩 참조할 수 있음)

        

        if (ord(i)>=65 and ord(i)<=90):      # 대문자일 경우

            if(ord(i)-n < 65):      # 대문자 아스키코드 범위를 벗어날 때(65미만)

                x=chr(ord(i)+(26-n))

            else:

                x=chr(ord(i)-n)                  


            decode_str+=x


        elif (ord(i)>= 97 and ord(i) <= 122): # 소문자일 경우

            if(ord(i)-n < 97):      #소문자 아스키코드 범위를 벗어날 때(97미만)

                x=chr(ord(i)+(26-n)) 

            else:

                x=chr(ord(i)-n)                 


            decode_str+=x

            

        else:       #소문자 또는  대문자가 아닐 경우

            

            decode_str+=i


    return decode_str

반응형