Start · Sprachen · PHP · Referenz · str_rot13

str_rot13

Funktion

Wendet die ROT13-Zeichenrotation auf einen String an, wobei jeder Buchstabe um 13 Positionen im Alphabet verschoben wird.

seit PHP 4.2.0 Kategorie: string

Signatur

str_rot13(string $string): string

Beschreibung

str_rot13() implementiert den ROT13-Algorithmus: Jeder lateinische Buchstabe (A–Z, a–z) wird um 13 Stellen im Alphabet rotiert. Da das Alphabet 26 Zeichen hat, ist ROT13 selbstinvers – dieselbe Funktion wird sowohl zum Verschlüsseln als auch zum Entschlüsseln verwendet. Zahlen, Sonderzeichen und Nicht-ASCII-Zeichen bleiben unverändert.

ROT13 ist keine sichere Verschlüsselung und sollte niemals für sicherheitskritische Anwendungen genutzt werden. Es handelt sich lediglich um eine einfache Textverschleierung, die historisch in Usenet-Foren verwendet wurde, um Spoiler oder anstößige Inhalte vor zufälligem Lesen zu verbergen.

Typische Anwendungsfälle sind: einfache Obfuskation von Texten, Rätsel, Lernzwecke oder das Testen von String-Transformationspipelines. Da die Funktion bidirektional ist, genügt ein einziger Aufruf sowohl für die Kodierung als auch für die Dekodierung.

Parameter

Name Typ Default Beschreibung
$string Pflicht string Der Eingabe-String, auf den die ROT13-Transformation angewendet wird. Alle Nicht-Buchstaben-Zeichen (Zahlen, Satzzeichen, Leerzeichen, Unicode-Zeichen außerhalb von A–Z/a–z) werden unverändert übernommen.

Rückgabewert

Typ
string
Beschreibung
Den ROT13-transformierten String. Da ROT13 selbstinvers ist, liefert ein erneuter Aufruf mit dem Ergebnis den ursprünglichen String zurück.

Beispiele

Einfache ROT13-Kodierung und Dekodierung

<?php
$original  = 'Hallo, Welt!';
$kodiert   = str_rot13($original);
$dekodiert = str_rot13($kodiert);

echo $kodiert   . PHP_EOL; // Uryyb, Jryg!
echo $dekodiert . PHP_EOL; // Hallo, Welt!
Uryyb, Jryg! Hallo, Welt!

Spoiler-Verschleierung wie im Usenet

<?php
$spoiler = 'Der Mörder ist der Gärtner.';
$verschleiert = str_rot13($spoiler);

echo 'Achtung, Spoiler (ROT13): ' . $verschleiert . PHP_EOL;
// Originaltext wiederherstellen:
echo str_rot13($verschleiert) . PHP_EOL;
Achtung, Spoiler (ROT13): Qre Zöeqre vfg qre Täegareh. Der Mörder ist der Gärtner.

ROT13 mit Zahlen und Sonderzeichen

<?php
// Zahlen und Sonderzeichen bleiben unverändert
$gemischt = 'PHP 8.3 ist toll!';
echo str_rot13($gemischt) . PHP_EOL;
CUC 8.3 vfg gbyy!

// Wichtig · Fallstricke

Sicherheitshinweis: ROT13 ist keine Verschlüsselung. Verwende es niemals zum Schutz sensibler Daten wie Passwörter, persönliche Informationen oder geheime Konfigurationswerte. Für echte Verschlüsselung stehen in PHP Funktionen wie openssl_encrypt() oder die sodium_*-Funktionen zur Verfügung.

Umlaute und andere Nicht-ASCII-Buchstaben (ä, ö, ü, é usw.) werden von str_rot13() nicht transformiert und bleiben unverändert. Wer eine vollständige ROT13-Unterstützung für Unicode-Texte benötigt, muss eine eigene Implementierung schreiben.