str_rot13()
Die PHP-Funktion str_rot13() führt die ROT13-Kodierung für einen string durch – eine einfache Buchstabenersetzung, die jeden Buchstaben um 13 Positionen verschiebt.
Die Funktion str_rot13() in PHP führt die ROT13-Kodierung für einen string durch. ROT13 ist ein einfacher Buchstabenersetzungs-Cipher, der jedes alphabetische Zeichen durch den Buchstaben ersetzt, der 13 Positionen weiter im Alphabet steht. Nicht-alphabetische Zeichen bleiben unverändert.
Die Syntax der Funktion str_rot13() lautet wie folgt:
Die PHP-Syntax von str_rot13()
str_rot13($string)Die Funktion erwartet einen erforderlichen Parameter: $string. $string ist der string, der mit ROT13 kodiert werden soll. Beachten Sie, dass str_rot13() nur ASCII-Buchstaben verarbeitet und UTF-8-Multibyte-Zeichen ignoriert. Nur alphabetische Zeichen werden transformiert; alle anderen Zeichen bleiben unverändert.
Hier ist ein Beispiel für die Verwendung der Funktion str_rot13():
Beispiel für PHP str_rot13()
In diesem Beispiel haben wir eine string-Variable $string, die den Ausdruck "Hello, World!" enthält. Wir verwenden die Funktion str_rot13(), um die ROT13-Kodierung auf den string anzuwenden, indem wir die Variable $string als Parameter übergeben.
Die Ausgabe dieses Codes lautet:
Uryyb, Jbeyq!Wie Sie sehen können, hat die Funktion str_rot13() den ursprünglichen string erfolgreich mit ROT13 kodiert.
ROT13 ist seine eigene Umkehrung
Die nützlichste Eigenschaft von ROT13 ist, dass Kodierung und Dekodierung dieselbe Operation sind. Da das Alphabet 26 Buchstaben hat und ROT13 genau um die Hälfte davon verschiebt, dreht die zweimalige Anwendung der Funktion einen Buchstaben um 13 + 13 = 26 Positionen, wodurch er an seinen Ausgangspunkt zurückkehrt. Das bedeutet, Sie rufen str_rot13() erneut auf, um den ursprünglichen string zurückzuerhalten – es gibt keine separate Funktion str_unrot13().
<?php
$plain = "Hello, World!";
$encoded = str_rot13($plain); // Uryyb, Jbeyq!
$decoded = str_rot13($encoded); // Hello, World!
echo $encoded . "\n";
echo $decoded . "\n";
?>Die Ausgabe dieses Codes lautet:
Uryyb, Jbeyq!
Hello, World!Was transformiert wird
Nur die 52 ASCII-Buchstaben (a–z und A–Z) werden rotiert. Die Groß-/Kleinschreibung bleibt erhalten, und alle anderen Zeichen – Ziffern, Satzzeichen, Leerzeichen und Multibyte-UTF-8-Zeichen – werden unverändert durchgereicht.
<?php
echo str_rot13("PHP 7.4 — café") . "\n";
?>Die Ausgabe dieses Codes lautet:
CUC 7.4 — pnséBeachten Sie, dass 7.4, die Leerzeichen und der Gedankenstrich unverändert bleiben, das akzentuierte é unberührt bleibt (es ist ein Multibyte-Zeichen, kein ASCII), während die ASCII-Buchstaben jeweils um 13 Positionen verschoben werden: P→C, H→U, c→p, a→n, f→s.
Wann man es verwenden sollte
ROT13 eignet sich dazu, Text vor einem flüchtigen Blick zu verbergen – etwa Spoiler-Tags in Foren, Rätsellösungen oder eine leichte Verschleierung einer E-Mail-Adresse im Quellcode. Da es die Länge beibehält und mit einem einzigen Aufruf umkehrbar ist, ist es auch ein gängiges Lehrbeispiel für einen Substitutions-Cipher.
Es darf niemals zum Schutz sensibler Informationen verwendet werden: ROT13 hat keinen Schlüssel und ist für jeden trivial umkehrbar. Für echten Schutz verwenden Sie PHPs password_hash() für Passwörter oder die Sodium- bzw. OpenSSL-Erweiterungen für die Verschlüsselung.
Verwandte Funktionen
strrev()— Kehrt die Reihenfolge der Zeichen in einem string um.str_replace()— Ersetzt Teilstrings innerhalb eines string.substr_replace()— Ersetzt einen Teil eines string anhand der Position.