ROT13 인코더

ROT13은 지금도 쓰이는 가장 단순한 텍스트 가리기 방법입니다. 알파벳의 각 문자를 13칸 옮기고, 같은 회전을 한 번 더 적용하면 원래대로 돌아옵니다. 유즈넷에서 영화 스포일러, 퍼즐 정답, 짓궂은 농담을 감추는 데 쓰였고, 지금도 텍스트 한 덩어리를 우연한 시선에서 잠시 가리는 데 편리하지만, 실제 비밀 유지에는 결코 쓰면 안 됩니다.

ROT13 작동 방식

  1. 1

    문자 하나를 가져오기

    A–Z와 a–z만 해당합니다. 숫자, 문장 부호, 공백은 그대로 둡니다.

  2. 2

    13칸 앞으로 밀기

    A는 N이 됩니다. M은 Z가 됩니다. N은 다시 A로 돌아 감쌉니다.

  3. 3

    두 번 적용해 복호화

    알파벳은 26자이므로 13칸을 두 번 밀면 원래대로 돌아옵니다.

매핑

원본 ROT13 원본 ROT13
A N N A
B O O B
C P P C
D Q Q D
E R R E
F S S F
G T T G
H U U H
I V V I
J W W J
K X X K
L Y Y L
M Z Z M

왜 13인가

13 = 26 ÷ 2이므로 인코딩과 디코딩이 같은 연산입니다. 인코딩용과 디코딩용 함수를 따로 둘 필요가 없고, 같은 코드가 둘 다 수행합니다. 바로 이 대칭성 덕분에 ROT13은 프로그래머용 암호 라이브러리가 널리 퍼지기 전부터 인기를 얻었습니다.

ROT13이 실제로 어울리는 곳

  • 스포일러 가리기: “Qbg Fabjonyy vf Ebo’f qnq.“는 토글하면 읽을 수 있지만 얼핏 보면 무해합니다.
  • 퍼즐 정답: 정답을 회전해 두어 평문으로 드러나지 않게 합니다.
  • 크로스워드 힌트 처리: 일부 앱은 뜻하지 않은 스포일러를 막으려고 힌트를 회전합니다.
  • 옛 HTML에서 이메일 가리기: 자바스크립트 기반 난독화가 보편화되기 전에 쓰던 가벼운 수집 방지 기법입니다.

ROT13이 전혀 어울리지 않는 곳

  • 비밀번호. 암호화가 아닙니다. 한 번만 봐도 뚫리고, 자동화된 코드는 마이크로초 만에 되돌립니다.
  • 비밀. “Guvf vf frperg”를 본 사람은 당신이 무엇을 했고 어떻게 되돌리는지 즉시 압니다.
  • 바이너리 데이터. ROT13은 문자만 건드리므로, 바이너리 덩어리는 다른 문자가 손상됩니다.

변형

  • ROT5: 숫자만, 5칸 이동. 0↔5, 1↔6, 2↔7, 3↔8, 4↔9. 같은 자기역 성질을 가집니다.
  • ROT18: 문자에는 ROT13, 숫자에는 ROT5를 적용합니다. 문자와 숫자가 섞인 내용을 다룹니다.
  • ROT47: 인쇄 가능한 ASCII(33–126)를 47칸 이동합니다. 대칭이며 문장 부호까지 포함하지만 출력은 잡음처럼 보입니다.
  • 시저 암호: N칸을 옮기는 일반적인 방식. ROT13은 자기 자신이 역이 되는 특수한 경우입니다.

역사 한 토막

유즈넷 관례는 1980년대 초 rec.humor 같은 뉴스그룹에서 생겼고, 독자는 스포일러 태그가 붙은 글을 선택적으로 회전해 볼 수 있었습니다. 지금도 많은 뉴스 리더가 키 하나로 “ROT13 디코드” 기능을 제공합니다. “ROT13”이라는 이름은 RFC 문헌에서 굳어졌지만 공식 프로토콜이었던 적은 없습니다.

자주 묻는 질문

시저 암호라는 의미에서는 기술적으로 그렇지만, 그 키(13)는 쉽게 추측되고 연산도 널리 알려져 있습니다. 보안이 아니라 가리기로 여기세요.

아니요. A–Z와 a–z만 이동합니다. 숫자, 공백, 기호는 그대로 통과합니다.

ROT13을 다시 적용하세요. 13이 26의 절반이기 때문에 인코딩과 디코딩은 같은 연산입니다.

네, 1에서 25까지 어떤 이동이든 시저 암호 인코더를 사용하세요. ROT13은 이동 13의 특수한 경우일 뿐입니다.

아니요. 입력한 텍스트는 회전 결과를 만드는 데만 쓰이고 이후 보관되지 않습니다. ROT13은 암호화가 아니라 가리기이므로, 정말 기밀인 내용은 어떤 ROT13 도구에도 붙여넣지 마세요.

관련 도구

이 도구는 다른 언어로도 제공됩니다