본문으로 건너뛰기
Case Converter Online
ko

ROT13 변환기: 인코더와 디코더

텍스트를 입력하면 ROT13으로 뒤섞고, ROT13 텍스트를 붙여넣으면 원래대로 읽을 수 있습니다. 같은 과정이 인코딩과 디코딩을 모두 하며, 숫자와 기호까지 포함하려면 ROT18이나 ROT47로 바꾸면 됩니다.

ROT13은 두 번 적용하면 원래대로 돌아오므로 같은 작업으로 인코딩과 디코딩을 합니다.

ROT13이란

ROT13은 “rotate by 13 places”, 즉 13칸 돌리기라는 뜻입니다. 각 글자를 알파벳에서 13칸 뒤의 글자로 바꿉니다. A는 N, B는 O가 되고, N은 다시 처음으로 돌아가 A가 됩니다. 대문자는 대문자로 남고, 글자가 아닌 것은 모두 제자리에 남습니다. ROT13 변환기는 이 과정을 입력하는 즉시 처리합니다.

알파벳은 26자이므로 13칸씩 두 번 돌리면 처음으로 돌아옵니다. 그래서 ROT13은 자기 자신이 역연산입니다. 같은 연산으로 인코딩과 디코딩을 모두 하므로 “어느 방향이지?“라고 고민할 필요가 없습니다.

ROT13은 1980년대 유즈넷 뉴스그룹에서 스포일러, 유머의 결정적 대사, 퍼즐 정답을 정중하게 가리는 방법으로 널리 퍼졌습니다. 보고 싶은 사람은 한 번에 디코딩할 수 있었습니다. 지금도 포럼, 지오캐싱 힌트, 프로그래밍 연습 문제에서 쓰입니다.

도구 사용 방법

  1. 왼쪽 텍스트에 텍스트를 입력하거나 붙여넣습니다. 오른쪽 ROT13 텍스트에 ROT13 결과가 나타납니다.
  2. 뒤섞인 메시지를 읽으려면 ROT13 텍스트에 붙여넣습니다. 왼쪽에 원래 텍스트가 나타납니다.
  3. 다른 방식이 필요하면 방식에서 고릅니다.
    • ROT13: 영문자만
    • ROT18: 영문자와 숫자
    • ROT47: 보이는 ASCII 문자 전체
  4. 각 입력란 위의 복사를 눌러 복사하거나, 지우기를 눌러 두 입력란을 비웁니다.

예시

아래 결과는 이 페이지에서 각 방식을 실행해 얻은 것입니다.

텍스트 ROT13 ROT18 ROT47
Hello, World! Uryyb, Jbeyq! Uryyb, Jbeyq! w6==@[ (@C=5P
Room 42 Ebbz 42 Ebbz 97 #@@> ca
Code 2026 Pbqr 2026 Pbqr 7571 r@56 a_ae
Gate 7 opens Tngr 7 bcraf Tngr 2 bcraf v2E6 f @A6?D
To get to the other side! Gb trg gb gur bgure fvqr! Gb trg gb gur bgure fvqr! %@ 86E E@ E96 @E96C D:56P

전체 ROT13 알파벳은 다음과 같습니다. 위가 원래 글자, 아래가 ROT13 짝입니다.

abcdefghijklmnopqrstuvwxyz
nopqrstuvwxyzabcdefghijklm

앞 절반은 뒤 절반으로, 뒤 절반은 다시 앞 절반으로 짝지어집니다. a는 n, n은 a, z는 m이 됩니다.

세 가지 방식

ROT13은 A부터 Z, a부터 z만 13칸 돌립니다. 숫자, 공백, 문장 부호, 악센트 문자는 건드리지 않습니다. 가장 고전적인 방식이며, 보통 ROT13이라고 하면 이것을 말합니다.

ROT18은 글자에는 ROT13을, 숫자에는 ROT5를 적용합니다. 숫자는 5칸씩 이동해 0은 5, 1은 6, 9는 4가 됩니다. 이 방식도 자기 자신을 되돌립니다.

ROT47은 !부터 ~까지 눈에 보이는 ASCII 문자 94개에 적용되며, 글자, 숫자, 흔한 기호가 모두 포함됩니다. 각 문자는 47칸 이동합니다. 47은 94의 절반이므로 ROT47도 자기 자신을 되돌립니다. 결과가 텍스트처럼 보이지 않는다는 점이 목적이지만, 백틱이나 세로 막대처럼 일부 채팅 앱이 서식으로 처리하는 문자가 섞일 수 있습니다.

공백과 이 범위 밖의 문자, 예를 들어 이모지나 악센트 문자는 어느 방식에서도 그대로 남습니다.

한계

ROT13은 이동 값이 13인 카이사르 암호의 특수한 경우입니다. 보안 효과는 전혀 없습니다. 키가 없고, 짧은 ROT13 단어는 눈으로 바로 읽는 사람도 많습니다. 스포일러를 언뜻 보지 않게 가리는 데만 쓰고, 비밀번호나 개인 메시지 보호에는 절대 쓰지 마세요.

영어가 아닌 문자에도 아무 효과가 없습니다. 그리스 문자, 키릴 문자, 아랍 문자는 바뀌지 않고 통과합니다. 한글도 마찬가지입니다. 이 도구에서 Hello 안녕하세요!를 ROT13으로 바꾸면 Uryyb 안녕하세요!가 되어 한글 부분은 그대로 보입니다. ROT47도 기호만 바꿀 뿐이라 스포 주의: Hello는 스포 주의i w6==@가 됩니다. 한글 스포일러를 가리는 용도로는 쓸 수 없습니다.

다른 방법으로 ROT13 적용하기

Linux, macOS, Git Bash에서는 tr 명령 한 줄로 ROT13을 적용합니다.

echo 'Hello, World!' | tr 'A-Za-z' 'N-ZA-Mn-za-m'

Uryyb, Jbeyq!가 출력됩니다. 결과를 같은 명령에 다시 통과시키면 원래 텍스트가 나옵니다.

Python 표준 라이브러리에는 ROT13이 들어 있습니다.

import codecs
codecs.encode('Hello, World!', 'rot13')

이것도 Uryyb, Jbeyq!를 돌려줍니다.

Vim에서는 텍스트를 선택하고 g?를 누르면 ROT13이 적용됩니다. 일부 이메일 클라이언트와 텍스트 편집기도 메뉴에 ROT13 명령이 있습니다.

스프레드시트에서는 CODE, MOD, CHAR로 글자를 하나씩 처리해야 해서 준비가 번거롭습니다. 여기에 텍스트를 붙여넣는 편이 훨씬 쉽습니다.

관련 도구

다른 이동 값이 필요하면 카이사르 암호 도구를 쓰세요. 모르는 이동 값도 찾아 줍니다. 글자를 숫자로 바꾸려면 A1Z26 암호를 사용해 보세요. 텍스트를 숨기려는 것이 아니라 이메일과 URL에서 깨지지 않게 인코딩하려면 Base64를 쓰세요.

ROT13 변환기 자주 묻는 질문

ROT13은 어떻게 디코딩하나요?

ROT13 텍스트를 오른쪽 입력란에 붙여넣으면 왼쪽에 읽을 수 있는 텍스트가 나타납니다. ROT13을 두 번 적용하면 원래대로 돌아오므로 왼쪽 입력란에 붙여넣어도 됩니다.

ROT13은 왜 숫자를 바꾸지 않나요?

ROT13은 영어 알파벳 26자만 돌립니다. 숫자까지 뒤섞으려면 0부터 9까지를 5칸씩 돌리는 ROT18을 고르세요. ROT47은 한 걸음 더 나아가 문장 부호를 포함해 눈에 보이는 ASCII 문자를 모두 돌립니다. 한글은 어느 방식에서도 바뀌지 않습니다.

ROT13은 암호화인가요?

아닙니다. 키가 없고 누구나 즉시 되돌릴 수 있습니다. 스포일러나 퍼즐 정답처럼 무심코 읽지 않게 하려는 용도이지, 비밀을 지키는 용도가 아닙니다.

Uryyb는 무슨 뜻인가요?

Uryyb는 ROT13으로 바꾼 Hello입니다. H는 U, e는 r, l은 각각 y가 됩니다. Hello, World!가 Uryyb, Jbeyq!로 바뀌기 때문에 간단한 예시로 자주 쓰입니다.

코드와 데이터 도구 더 보기

전체 도구 보기