🔐 ROT13 एनकोडर और डिकोडर
स्व-प्रतिवर्ती ROT13 सिफर का उपयोग करके टेक्स्ट को रूपांतरित करें - स्पॉइलर छिपाने और बुनियादी टेक्स्ट ऑबफस्केशन के लिए बिल्कुल सही
🎯 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:
🎬 स्पॉइलर छिपाना
फ़ोरम में फिल्म, किताब या गेम के स्पॉइलर को आकस्मिक रूप से पढ़ने से रोकता है।
📧 ईमेल ऑबफस्केशन
वेबसाइटों पर स्पैम बॉट्स से ईमेल पते छिपाएं।
🎓 क्रिप्टोग्राफी सिखाना
छात्रों को बुनियादी एन्क्रिप्शन अवधारणाओं से परिचित कराएं।
🎮 पहेलियाँ और खेल
सरल शब्द पहेलियाँ और énigmes बनाएं।
❓ अक्सर पूछे जाने वाले प्रश्न
💻 विभिन्न प्रोग्रामिंग भाषाओं में 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 के दशक में Usenet पर संभावित रूप से आपत्तिजनक सामग्री को छिपाने के एक तरीके के रूप में लोकप्रिय हुआ। इसे "एक उत्तर को उल्टा छापने के Usenet समकक्ष" के रूप में वर्णित किया गया है।
- प्रारंभिक इंटरनेट संस्कृति में उत्पन्न हुआ
- अभी भी आधुनिक मंचों और चर्चा बोर्डों में उपयोग किया जाता है
- कई पाठ संपादकों (जैसे Vim) में अंतर्निहित
- यूनिक्स उपयोगिताओं में मानक
🔗 संबंधित सिफर उपकरण
🔄 सीज़र सिफर
अनुकूलन योग्य शिफ्ट मान (1-25) के साथ क्लासिक शिफ्ट सिफर। ROT13 से अधिक लचीला।
🔀 एटबाश सिफर
प्राचीन हिब्रू सिफर जो वर्णमाला को उलट देता है (A↔Z, B↔Y)। एक और स्व-प्रतिवर्ती विधि।
🔐 विजेनियर सिफर
अधिक उन्नत सुरक्षा के लिए कीवर्ड-आधारित एन्क्रिप्शन का उपयोग करने वाला बहुअक्षरीय सिफर।
📊 Base64 एनकोडर
सुरक्षित डेटा प्रसारण के लिए बाइनरी डेटा को ASCII टेक्स्ट प्रतिनिधित्व में परिवर्तित करें।