#연구/#Python

파이썬으로 Caesar 암호화 구현하기 #파이썬으로 숫자 입력 받아 카이사르(시저) 암호화 구현하기! #Caesar_cipher

every7hing 2021. 3. 30. 22:18
반응형

 

파이썬으로 Caesar 암호화 구현하기 

#파이썬으로 숫자 입력 받아 카이사르(시저) 암호화 구현하기!

 

안녕하세요. 오랜만에 파이썬 관련 글을 쓰게 되는 것 같네요!

아 요즘 게을러져서... ; )

 

오늘은 파이썬을 통해 Caesar 암호화를 구현해보려고 합니다.

Caesar 암호화는 특정 수 만큼 문자열을 Shift 시켜 원래의 문자열을 제대로 알아 볼 수 없게 하는 것인데요.

시저 암호화의 자세한 내용은 아래 URL을 통해 확인하시기 바랄게요!

en.wikipedia.org/wiki/Caesar_cipher

 

Caesar cipher - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Simple and widely known encryption technique The action of a Caesar cipher is to replace each plaintext letter with a different one a fixed number of places down the alphabet. The ciph

en.wikipedia.org

 

[ 같이 읽으면 좋은 글들 ↓ ]

 

 

[파이썬/Python] 파일에서 특정 문자열이 사용된 개수 세어보기 #파일에서 문자열 개수 파악하는

[파이썬/Python] 파일에서 특정 문자열이 사용된 개수 세어보기 #파일에서 문자열 개수 파악하는 함수 파이썬에서 어떤 파일에서 원하는 문자열이 몇 개가 사용되고 있는지 세고 싶을 때가

isss.tistory.com

 

그럼, 먼저 Caesar cipher 함수를 구현해볼게요.

입력 값은, Shift할 수 n과 암호화 할 문자열 plainString 2가지 입니다.

def encrypt(plainString, n):
  result = ""
  for i in range(len(plainString)):
    char = plainString[i]
    if (char.isspace()):
      result += " "
    else:
      if (char.isupper()):
        result += chr((ord(char) + n - 65) % 26 + 65)
      else:
        result += chr((ord(char) + n - 97) % 26 + 97)
  return result

 

그럼 위에 구현한 함수에 맞게 호출하는 부분을 완성해볼게요.

Shift하는 수는 사용자가 입력한 수로 할게요.

def main():
  number = int(input("Input Number > "))
  print(encrypt("This is Test String", number))

if __name__ == "__main__":
  main()
 

 

자! 그럼 코드는 완성된 것 같네요.

그럼 테스트로 실행시켜 보겠습니다.

Input Number > 3
Wklv lv Whvw Vwulqj

 

3을 입력하니까, 바로 "This is Test String"이 문자열이 암호화되서 출력되네요.

신기하죠?

 

5를 입력해볼까요?

Input Number > 5
Ymnx nx Yjxy Xywnsl

 

 

5를 입력했니 또 다른 문자열이 출력되네요.

하하.

그럼 다음시간에는 해당 Encrypt 함수를 Decrypt하는 함수도 구현해보도록 하겠습니다!

아래에 전체 코드 공유하면서 저는 이만 물러갈게요!

 

def encrypt(plainString, n):
  result = ""
  for i in range(len(plainString)):
    char = plainString[i]
    if (char.isspace()):
      result += " "
    else:
      if (char.isupper()):
        result += chr((ord(char) + n - 65) % 26 + 65)
      else:
        result += chr((ord(char) + n - 97) % 26 + 97)
  return result


def main():
  number = int(input("Input Number > "))
  print(encrypt("This is Test String", number))


if __name__ == "__main__":
  main()

 

Caesar Chiper 암호화를 복호화하는 것은 어떻게 할까?

 

파이썬으로 Caesar Cipher 복호화 함수 구현하기 #카이사르(시저) 암호화 Decrypt 함수 만들어보기 #Shif

파이썬으로 Caesar Cipher 복호화 함수 구현하기 #카이사르(시저) 암호화 Decrypt 함수 만들어보기 #Shift 수를 알고 있을 때 안녕하세요. 오늘은 Caesar Cipher의 복호화 함수를 만들어보겠습니다

isss.tistory.com

 

반응형