🔐 ROT13 인코더 및 디코더

자체 가역적인 ROT13 암호를 사용하여 텍스트 변환 - 스포일러 숨기기 및 기본 텍스트 난독화에 적합

📥 입력 텍스트 0
📤 출력 텍스트 0

⚙️ 옵션

🎯 ROT13 알파벳 매핑

ROT13은 각 문자를 13자리 뒤의 문자로 바꿉니다. 알파벳이 26개이므로 ROT13을 두 번 적용하면 원래 텍스트로 돌아옵니다.

🏛️ ROT13이란?

ROT13("13자리 회전")은 고정된 13자리 이동을 사용하는 시저 암호의 특별한 경우입니다. 온라인 포럼이나 뉴스그룹에서 스포일러, 퍼즐 해답, 농담의 핵심 내용을 숨기는 데 널리 사용됩니다.

단순 치환 암호

각 문자는 알파벳에서 13자리 떨어진 다른 문자로 대체됩니다.

자체 가역적

ROT13을 두 번 적용하여 원본 텍스트를 되돌릴 수 있습니다 - 인코딩과 디코딩이 동일한 작업입니다.

대소문자 유지

대문자는 대문자로, 소문자는 소문자로 유지됩니다.

넓은 지원 범위

빠른 난독화를 위해 플랫폼, 포럼, 텍스트 편집기에서 사용됩니다.

⚙️ 작동 원리

각 문자는 알파벳에서 13자리 앞의 문자로 대체됩니다. 끝에 도달하면 처음으로 돌아갑니다:

  • A ↔ N, B ↔ O, C ↔ P, 등.
  • 숫자와 기호는 변경되지 않습니다 (옵션 활성화 시 제외)
  • 수학 공식: (x + 13) mod 26
  • 인코딩과 디코딩 과정 동일

🔐 보안 및 사용법

ROT13은 암호학적 보안을 제공하지 않으며 쉽게 해독될 수 있습니다. 하지만 다음과 같은 용도에 적합합니다: and is trivially broken. However, it's perfect for:

🎬 스포일러 숨기기

포럼에서 영화, 책, 게임 스포일러를 실수로 읽는 것을 방지합니다.

📧 이메일 난독화

웹사이트에서 스팸봇으로부터 이메일 주소를 숨깁니다.

🎓 암호학 교육

학생들에게 기본적인 암호화 개념을 소개합니다.

🎮 퍼즐 및 게임

간단한 단어 퍼즐과 수수께끼를 만듭니다.

❓ 자주 묻는 질문

ROT13이 다른 시저 암호와 다른 점은 무엇인가요?
ROT13은 26개 알파벳의 절반인 정확히 13칸을 이동하기 때문에 독특합니다. 이는 동일한 작업으로 텍스트를 암호화하고 복호화할 수 있음을 의미합니다 - ROT13을 두 번 적용하면 원래 메시지로 돌아옵니다. 이 자체 가역성 덕분에 빠른 난독화 작업에 특히 편리합니다.
ROT13은 민감한 정보를 보호하는 데 안전한가요?
아니요, ROT13은 전혀 암호학적 보안을 제공하지 않습니다. 해독이 매우 쉬우므로 비밀번호, 개인 정보 또는 기밀 데이터를 보호하는 데 절대 사용해서는 안 됩니다. 스포일러, 퍼즐 답을 숨기거나 실수로 읽히고 싶지 않은 텍스트를 난독화하는 용도로만 사용됩니다.
안전하지 않은데 왜 ROT13을 아직도 사용하나요?
ROT13은 실제 보안이 필요 없이 가볍게 정보를 숨기고 싶을 때 완벽합니다. 일반적인 용도로는 온라인 토론에서 영화/책 스포일러 숨기기, 스팸 봇으로부터 이메일 주소 난독화, 간단한 단어 퍼즐 만들기, 암호학 기초 교육 등이 있습니다. 단순성과 자체 가역성 덕분에 이러한 목적에 이상적입니다.
ROT13으로 숫자나 특수 문자를 암호화할 수 있나요?
전통적인 ROT13은 문자(A-Z, a-z)만 변환하고 숫자, 공백, 특수 문자는 그대로 둡니다. 하지만 숫자 회전(0-9)을 포함하는 ROT18이나 더 많은 ASCII 문자를 포함하는 ROT47과 같은 확장 버전도 있습니다. 저희 도구는 5자리 회전(0↔5, 1↔6 등)을 사용하여 숫자를 처리하는 옵션 설정을 제공합니다.
ROT13 텍스트를 어떻게 복호화하나요?
ROT13은 자체 가역적이므로 암호화하는 것과 똑같은 방식으로 복호화합니다 - ROT13을 다시 적용하기만 하면 됩니다! 암호화된 텍스트를 입력 필드에 붙여넣고 "ROT13 처리"를 클릭하세요. ROT13의 장점은 별도의 암호화/복호화 작업이 필요 없다는 것입니다.
오늘날 ROT13은 주로 어디에 사용되나요?
ROT13은 온라인 포럼 및 토론 게시판(Reddit, Stack Exchange)에서 스포일러 숨기기, 지오캐싱 퍼즐 및 미스터리 캐시, 웹사이트의 이메일 주소 난독화, Unix/Linux 시스템(vim과 같은 편집기에 내장), 프로그래밍 연습 및 코딩 챌린지, 기본 암호화 개념을 가르치는 교육 환경 등에서 널리 사용됩니다.

💻 다양한 프로그래밍 언어의 ROT13

Python

import codecs # Method 1: Using codecs text = "Hello World" encoded = codecs.encode(text, 'rot13') print(encoded) # Output: Uryyb Jbeyq # Method 2: Manual implementation def rot13(text): result = [] for char in text: if char.isalpha(): offset = 65 if char.isupper() else 97 result.append(chr((ord(char) - offset + 13) % 26 + offset)) else: result.append(char) return ''.join(result) print(rot13("Hello World")) # Output: Uryyb Jbeyq

JavaScript

function rot13(str) { return str.replace(/[a-zA-Z]/g, function(char) { const code = char.charCodeAt(0); const offset = code >= 65 && code <= 90 ? 65 : 97; return String.fromCharCode((code - offset + 13) % 26 + offset); }); } console.log(rot13("Hello World")); // Output: Uryyb Jbeyq

PHP

<?php // Method 1: Using str_rot13 $text = "Hello World"; $encoded = str_rot13($text); echo $encoded; // Output: Uryyb Jbeyq // Method 2: Manual implementation function rot13_manual($str) { $result = ''; for ($i = 0; $i < strlen($str); $i++) { $char = $str[$i]; if (ctype_alpha($char)) { $offset = ord(ctype_upper($char) ? 'A' : 'a'); $result .= chr((ord($char) - $offset + 13) % 26 + $offset); } else { $result .= $char; } } return $result; } ?>

Java

public class ROT13 { public static String encode(String text) { StringBuilder result = new StringBuilder(); for (char c : text.toCharArray()) { if (Character.isLetter(c)) { char offset = Character.isUpperCase(c) ? 'A' : 'a'; result.append((char) ((c - offset + 13) % 26 + offset)); } else { result.append(c); } } return result.toString(); } public static void main(String[] args) { System.out.println(encode("Hello World")); // Output: Uryyb Jbeyq } }

C++

#include <iostream> #include <string> #include <cctype> std::string rot13(const std::string& text) { std::string result; for (char c : text) { if (std::isalpha(c)) { char offset = std::isupper(c) ? 'A' : 'a'; result += (c - offset + 13) % 26 + offset; } else { result += c; } } return result; } int main() { std::cout << rot13("Hello World") << std::endl; // Output: Uryyb Jbeyq return 0; }

리눅스/유닉스 커맨드 라인

# Using tr command echo "Hello World" | tr 'A-Za-z' 'N-ZA-Mn-za-m' # Output: Uryyb Jbeyq # Decode (same command) echo "Uryyb Jbeyq" | tr 'A-Za-z' 'N-ZA-Mn-za-m' # Output: Hello World # Process a file cat input.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m' > output.txt

📚 역사적 배경

ROT13은 1980년대 유즈넷에서 잠재적으로 불쾌감을 줄 수 있는 콘텐츠를 숨기는 방법으로 인기를 얻었습니다. 이는 "답을 거꾸로 인쇄하는 유즈넷 방식"으로 묘사됩니다.

  • 초기 인터넷 문화에서 유래
  • 현대 포럼과 토론 게시판에서 여전히 사용됨
  • 많은 텍스트 편집기(Vim 등)에 내장됨
  • 유닉스 유틸리티의 표준 기능

🔗 관련 암호 도구