Verschlüsslung bzw. Codierung von HTML Code in ASCII
HTML Code können wir ebenso gut in ASCII Code umwandeln. Zunächst einmal ein paar Sätze dazu, wozu man ASCII Zeichen benötigt und wozu Ihnen dieses Script dient.
2004-02-27 10:20:31 2004-02-27 10:20:31 Lukas Beck
HTML Code können wir ebenso gut in ASCII Code umwandeln. Zunächst einmal ein paar Sätze dazu, wozu man ASCII Zeichen benötigt und wozu Ihnen dieses Script dient.
Jeder kennt das Problem - in manchen Foren wollen Sie eine Internetadresse angeben, diese wird dann entweder gar nicht erst angezeigt, da die Tags "gestript" werden oder die Adresse soll ausgegeben, nicht als Link umgewandelt werden. Beides ist ärgerlich und mühsam zugleich. Hier ist es möglich, die Tags in ASCII zu wandeln.
Doch auch ein weiterer Aspekt sollte heutzutage in Betracht gezogen werden. Massive Probleme bereiten immer mehr die zunehmenden Spamer und damit primär natürlich verbunden die Spam Roboter, die den Müllversand erst ermöglichen. Eine gute Variante bot lange Zeit die Darstellung des @ Zeichens durch einen ASCII Code. Doch immer mehr Roboter gehen dazu über, dieses ja bekannte ASCII Zeichen einfach durch ein @ zu ersetzen und somit ist auch dieser Trick nicht mehr so sicher wie er einst mal war. Bislang ungeschlagen ist natürlich die bildhafte Lösung, die Mail Adresse einfach per Bilddatei darzustellen, leider aber nicht immer und überall möglich und daher meist auf den eigenen Webspace beschränkt.
Ich habe den Test gemacht und über mehrere Monate hinweg drei neu erstellte Mail Accounts auf eine gut besuchte Seite gestellt, eine von diesen ohne jeglichen Schutz, in der zweiten war lediglich das @ Zeichen durch einen ASCII Code ersetzt, die dritte - nun zum Tutorial - war komplett per ASCII Code dargestellt. Das SPAM Ergebnis war erstaunlich - auf die erste erhielt ich nach wenigen Wochen bereits Spam, die zweite blieb weitestgehend verschont, erhielt jedoch unregelmäßige, dennoch wenige unerwünschte Mails, die dritte ist bis heute Spamfrei. Resultat muss also sein, dass bislang wenige Spam Roboter sich die Mühe machen, den gesamten ASCII Code umzuwandeln - zudem kostet dies zusätzliche Rechenleistung.
Beginnen Sie also mit dem Standard HTML Teil, dem Titel und dem Body.
<html>
<head>
<title>Encrypter</title>
</head>
<body>
Ihr Script beginnt mit einem Formular, in dem Sie die Möglichkeit geben, eine URL, Mail oder Standardtext umzuwandeln. Dies ist natürlich beliebig erweiterbar, ändert auch nichts am eigentlichen Umwandlungsprinzip. Sie können das Script in HTML ausgeben, da dieses statisch bleibt. Hauptelement bildet das Formularfeld letters.
<form action="index.php" method="post">
<input type="text" name="letters"> <input type="submit" name="senden">
<br>
<input type="radio" value="standard" name="show"> Standard
<input type="radio" value="url" name="show"> URL
<input type="radio" value="email" name="show"> E-Mail
</form><br><br>
Zunächst wollen Sie ja wissen, wie Sie überhaupt umwandeln. Hierzu gibt es in PHP die hilfreichen Funktionen ord(); und chr(); - jeweils zum Darstellen und Umwandeln von ASCII Zeichen. Damit Sie den für HTML Code brauchbaren Zeichenstring erhalten, müssen Sie etwas tricksen und die Zeichen sowie das Semikolon per ASCII ausgeben, ansonsten erhalten Sie lediglich den puren ASCII Code. Hierzu führen Sie eine Verkettung durch, wie im unteren Script zu sehen ist.
<?
echo "&#".ord($letters[$i]).";";
?>
Zunächst müssen Sie wissen, wie lang der eingegebene String ist, Sie testen dies mit der Funktion strlen(); - es kommt eine for() Schleife zum Einsatz und die Umwandlung beginnt mit ord();. Um einen zusammenhängenden String zu erhalten, den Sie später benötigen, füllen Sie ein Array namens encrypt[]; nach und nach mit dem gesamten umgewandelten Code. Um den Text problemlos kopieren zu können, geben Sie die Zeichen in einem Formularfeld Textarea aus.
<?
echo "<textarea rows="5" cols="80" style="color:blue">";
for($i=0;$i<strlen($letters);$i++)
{
echo "&#".ord($letters[$i]).";";
$encrypt[] = ord($letters[$i]);
}
echo"</textarea>";
?>
Sie wollen natürlich auch sehen, ob das, was ausgegeben wurde, auch so stimmt. Sicherheitshalber sollten Sie daher den ASCII Code nochmal umwandeln, um zu sehen, was dabei herauskommt. Dazu unterscheiden Sie zunächst nach der getätigten Auswahl E-Mail oder URL. Weiterhin bedienen Sie sich jetzt dem Array encrypt[];, welches Sie zuvor erstellt haben und lassen einfach noch einmal eine Schleife durchlaufen, mit dem Unterschied, dass Sie nun statt der verschlüsselnden Funktion ord(); die entschlüsselnde Funktion chr(); verwenden.
<?
echo "<br><br><b>Proof</b><br>";
if($show == "email") echo "<a href="mailto:";
elseif($show == "url") echo "<a href="http://";
if($show == "email" || $show == "url") {for($i=0;$i<=count($encrypt);$i++) {echo chr($encrypt[$i]); } echo"">"; }
for($i=0;$i<=count($encrypt);$i++) {echo chr($encrypt[$i]); }
if($show == "email" || $show == "url") echo "</a>";
?></body>
</html>
Damit wäre das Script auch schon zu Ende.
Kurze Zusatzinformation zum ASCII Code, für diejenigen, die es interessiert: Der American Standard Code for Information Interchange war ursprünglich ein 8 Bit Code, dessen erste 7 Bit zur Darstellung von Buchstaben und Zahlen genutzt wurde. Das 8. Bit diente als Prüfbit. Zugunsten der Darstellung von einigen Sonderzeichen sowie Umlauten fungierte das 8. Bit jedoch schon bald nicht mehr als Prüfbit sondern wurde zur Darstellung weiterer Zeichen benötigt. Gebraucht wird dieser Standard für die Anzeige von E-Mails und HTML Code und anderem.
Hier noch einmal der gesamte Code:
<html>
<head>
<title>Encrypter</title>
</head>
<body>
<form action="index.php" method="post">
<input type="text" name="letters"> <input type="submit" name="senden">
<br>
<input type="radio" value="standard" name="show"> Standard
<input type="radio" value="url" name="show"> URL
<input type="radio" value="email" name="show"> E-Mail
</form><br><br>
<?
echo "<textarea rows="5" cols="80" style="color:blue">";
for($i=0;$i<strlen($letters);$i++)
{
echo "&#".ord($letters[$i]).";";
$encrypt[] = ord($letters[$i]);
}
echo"</textarea>";
echo "<br><br><b>Proof</b><br>";
if($show == "email") echo "<a href="mailto:";
elseif($show == "url") echo "<a href="http://";
if($show == "email" || $show == "url") {for($i=0;$i<=count($encrypt);$i++) {echo chr($encrypt[$i]); } echo"">"; }
for($i=0;$i<=count($encrypt);$i++) {echo chr($encrypt[$i]); }
if($show == "email" || $show == "url") echo "</a>";
?>
</body>
</html>
Ratings
Here you can write a comment
Related topics
Thumbnails mit PHP erzeugen
Manchmal möchte man Bilder, die auf einer Website dargestellt werden sollen, verkleinern. Solche verkleinerten Bilder nennt man Thumbnails. ...
Autor :
Wolfgang13
Category:
PHP-Tutorials
Zugriff auf die Facebook Graph API mit PHP
In diesem Beispiel zeigt Joey Rivera wie man auf Facebook mit Hilfe von PHP und der Facebook Graph API zugreifen kann. ...
Autor :
admin
Category:
PHP-Tutorials
Variablen über mehrere Seiten hinweg verwenden - der Session-Befehl macht 's möglich!
Oberste Voraussetzung um Session-Befehle korrekt auszuführen ist, dass der Provider a) PHP und b) das speichern von Sessions auf dem Server überhaupt erlaubt. Wird der Session-Befehl unterstützt jedoch nicht das direkte speichern von Sessions bzw. Sess ...
Autor :
ndo@
Category:
PHP-Tutorials
Hier ein kleines allgemeines Tutorial zu PHP
Die Einleitung ist in folgende Themen aufgeteilt: -Einleitung -Variablen -Parameterübergabe -Funktionen -Schleifen -IF-Abfragen Am besten Sie schauen sie sich der Reihenfolge nach an. ...
Autor :
demiangrandt@
Category:
PHP-Tutorials
Konfiguration eines Linux-Rechners als DSL-Router
Dieser Artikel beschreibt wie man unter LINUX einen DSL-Rooter für Windows konfiguriert. ...
Autor :
tschiesser@
Category:
Linux & Server Tutorials
Installation von MySQL auf Linux
SuSE Linux Pro 8.2 mit mysql einfach installieren ...
Autor :
Moqui
Category:
Linux & Server Tutorials