zisslaweng.de

 Home    CSS    PHP    HTML    JavaScript    Allgemein    Sitemap   exemption-filter

Kodierung von Mail-Adressen

Der Sinn: Spammer, die Mailadressen sammeln und verkaufen, untersuchen per robots die Webseiten (ähnlich wie Suchmaschinen es auch machen). Aus diesem Grund der Versuch, die Mailadressen zu verstecken. Die robots führen gewöhnlich keinen Code aus und erkennen / dekodieren (hoffentlich) nicht die eingebetteten Mailadressen.

Der Browser dagegen führt das kleine script aus und dekodiert die Zeichenkette. Der Leser der Webseite bemerkt nichts davon.

Ein Automat kann eine Mailadresse z.B. erkennen an
  • der Zeichenfolge "mailto:" oder auch beliebige Zeichen, gefolgt von
  • dem Zeichen "@" und
  • nachfolgend eine Zeichenfolge, in der mindestens ein Punkt "." vorkommt.
Und das gilt es im ausgelieferten Quelltext zu verbergen.

Kodieren

Die Kodierung übernimmt das script "EnCryptMailAdr", indem man lokal auf einer dummy Seite den folgenden Code einfügt und die Seite aufruft.

<script type="text/javascript"> EnCryptMailAdr('info@zisslaweng.de');</script>

Das Ergebnis sieht dann so aus:

Dekodieren

Den generierten Nummernblock z.B. per drag and drop in der Zeile

<script type="text/javascript"> DeCryptMailAdr('nummernblock'); </script> an die Stelle nummernblock zwischen die beiden "'" einfügen, und dann ersetzt
<script type="text/javascript"> DeCryptMailAdr('18496: 
14280: 14960: 13872: 15096: 8704: 16592: 14280: 15640: 15640: 
14688: 13192: 16184: 13736: 14960: 14008: 6256: 13600: 
13736'); </script>
die übliche Schreibweise von <a>mailto:...</a> ...und natürlich das decode-script in die Webseite einfügen.

So sieht es aus

Noch einfacher..

..wenn Ihre Webseite unter php läuft. Hier verwende ich mal eine tatsächlich nicht vorhandene Adresse, da sie ja im Codebeispiel lesbar ist. Sie benötigen nur diesen kleinen Einschub:
<script type="text/javascript"> 
DeCryptMailAdr('<?echo encryptmailadr('forspam@zisslaweng.de');?>');
</script>

und das Ergebnis:


Programmcode

Kodieren

mit einigen Zeilen Code (JavaScript):

function EnCryptMailAdr (c){
var mail=c.split("");
var nummern="";
  for(i=0;i<mail.length;++i){
    nummern+=": " + (mail[i].charCodeAt(0) * 136);
  }
  document.write(c + " = 18496" + nummern);
}

oder in PERL ( zugesandt von Arnd Otto )

sub encryptmailadr {
  my $m = shift;
  my @mail = split( //, $addr );
  my $nummern='18496';
  foreach @mail {
    $nummern .=":".(ord($_)*136);
  }
  return $nummern
}

oder gleich PHP

function encryptmailadr ($m) {
  $mail=explode(':',chunk_split($m,1,":"));
  $nummern='18496';
  for ($i=0; $i < sizeof($mail)-1; $i++) {
     $nummern .= ":".(ord($mail[$i]) * 136);
  }
  return $nummern;
}

Dekodieren (Javascript)

function DeCryptMailAdr (c){
  var ac=c.split(":");
  var s="";
  for(i=1;i<ac.length;++i){
    s+=String.fromCharCode(Number(ac[i])/Math.sqrt(Number(ac[0])));
  }
  document.write('<a href="mailto:' + s + '">' + s + '<\/a>');
}

Wenn Sie die unten stehende PHP- und die beiden JavaScript Funktionen nicht kopieren / abtippen wollen, hier eine kleine Datei zum download:

CryptMail in der Version vom 07.05.09 19:40
Logo