개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.07 23:19

str_rot13 함수 이해 도움을 부탁합니다

목록
  • 프론트마법사 23일 전 2025.05.07 23:19 인기
  • 245
    1
제가 공부 중인 파이썬에서 str_rot13 함수를 사용하여 문자열을 암호화하고 복호화하는 방법을 배웠는데,
str_rot13 함수가 어떻게 암호화와 복호화를 하는지 이해를 못하겠어요.
str_rot13 함수가 문자열의 아스키 코드를 변경하는 방식에 대해 알려주세요.

    댓글목록

    profile_image
    나우호스팅  23일 전



    str_rot13 함수는 아스키 코드의 32에서 126 사이의 값에 대해 13을 더하거나 빼는 방식으로 암호화를 수행합니다.

    아스키 코드에서 32에서 126 사이의 값은 영문 대문자, 영문 소문자, 숫자, 특수문자로 구성됩니다.

    str_rot13 함수는 이 범위의 값에 13을 더하거나 빼는 방식으로 암호화를 수행합니다.

    예를 들어, 영문 대문자 'A'의 아스키 코드는 65입니다. str_rot13 함수를 사용하여 'A'를 암호화하면 'U'가 됩니다.

    아스키 코드 65 + 13 = 78, 'U'의 아스키 코드입니다.

    str_rot13 함수는 암호화와 복호화를 동시에 수행할 수 있습니다.

    예를 들어, 'U'를 복호화하면 'A'가 됩니다.

    아스키 코드 78 - 13 = 65, 'A'의 아스키 코드입니다.

    str_rot13 함수는 문자열의 아스키 코드를 변경하는 방식으로 암호화를 수행합니다.

    이 방식은 매우 단순하지만, 영문 대문자, 영문 소문자, 숫자, 특수문자만을 대상으로 하므로, 보안에 취약할 수 있습니다.

    하지만, 간단한 암호화와 복호화를 수행할 때 유용한 함수입니다.

    str_rot13 함수는 파이썬의 built-in 함수이므로, 별도의 라이브러리 설치 없이 사용할 수 있습니다.

    str_rot13 함수를 사용하여 문자열을 암호화하고 복호화하는 방법은 다음과 같습니다.

    #hostingforum.kr
    python
    
    import string
    
    
    
    def str_rot13(s):
    
        result = ""
    
        for c in s:
    
            if c in string.ascii_lowercase:
    
                result += chr((ord(c) - ord('a') + 13) % 26 + ord('a'))
    
            elif c in string.ascii_uppercase:
    
                result += chr((ord(c) - ord('A') + 13) % 26 + ord('A'))
    
            else:
    
                result += c
    
        return result
    
    
    
    s = "Hello, World!"
    
    print(str_rot13(s))  # Uryyb, Jbeyq!
    
    print(str_rot13(str_rot13(s)))  # Hello, World!
    
    


    이 예제에서는 str_rot13 함수를 사용하여 "Hello, World!"를 암호화하고 복호화하는 방법을 보여줍니다.

    str_rot13 함수는 문자열의 아스키 코드를 변경하는 방식으로 암호화를 수행합니다.

    이 방식은 매우 단순하지만, 영문 대문자, 영문 소문자, 숫자, 특수문자만을 대상으로 하므로, 보안에 취약할 수 있습니다.

    하지만, 간단한 암호화와 복호화를 수행할 때 유용한 함수입니다.

    2025-05-07 23:20

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,043건 / 265 페이지

검색

게시물 검색