| 

.NET C# Java Javascript Exception

2
Moin allerseits,

ich suche eine Kombination aus PHP und JavaScript für E-Mail-Verschleierung. Und zwar sollen auf PHP-Seite alle E-Mail-Adressen in einem Text gefunden und verschlüsselt werden. Die Entschlüsselung soll dann per JavaScript auf Browser-Seite erfolgen.
Bei Joomla gibt es so etwas, allerdings brauche ich eine standalone-Lösung. Weiß jemand, wo ich so etwas bekommen kann? Per Google bin ich nicht fündig geworden.
News:
03.05.2011
johny7 471 1 8
2 Antworten
3
Die möglichkeit zum finden der Emails in einem Text hat Floyd oben schon genannt,
nachdem du mit preg_match_all alle Emails gefunden hast, kannst du sie so verschlüsseln und entschlüsseln.

http://jumk.de/nospam/stopspam.html

dort stehen 2 funktionien im Quelltext, einmal zum verschlüsseln und 1mal zum entschlüsseln.
Die funktion zum verschlüsseln kannst du selbst in PHP nachbauen wenn du die Email automatisiert verschlüsseln möchtest.


EDIT


Habe die die Funktion zum verschlüsseln schnell in PHP nachgeschrieben:

Verschlüsseln (PHP SEITE)
<?php 
function cryptmail($mail){

$n = 0;
$r = '';
$s = "mailto:".$mail;
$e = $mail;

$e = str_replace('@', ' [at] ', $e);
$e = str_replace('.', ' [dot] ', $e);

for($i = 0; $i < strlen($s); $i++){
$n = ord($s[$i]);

if($n >= 8364){
$n = 128;
}
$r .= chr($n+1);
}

return $r;
}


echo cryptmail('test@test.de');
?>


Entschlüsseln (JAVSCRIPT SEITE)
<script type="text/javascript"> <!--
function UnCryptMailto( s )
{
var n = 0;
var r = "";
for( var i = 0; i < s.length; i++)
{
n = s.charCodeAt( i );
if( n >= 8364 )
{
n = 128;
}
r += String.fromCharCode( n - 1 );
}
return r;
}

function linkTo_UnCryptMailto( s )
{
location.href=UnCryptMailto( s );
}
// --> </script>


<a href="javascript:linkTo_UnCryptMailto('nbjmup;uftuAuftu/ef');">test [at] test [dot] de</a>
03.05.2011
Marco Rieger 820 8
Wahrscheinlich ohne die letzte Zeile.

Danke für die Mühe.
johny7 03.05.2011
Ja die letzte Zeile ist ein Beispiel wie ein link beim Output von PHP auszusehen hat
Marco Rieger 03.05.2011
2
Nun du kannst mittels Regex alle E-Mailadresse finden:

Der folgenden Reg-Ex-Ausdruck hällt sich genau an die Spezifikationen wie sie im RFC 2822 beschrieben sind:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])+)])


oder der etwas einfacherer Ausdruck:
^[a-zA-Z0-9_\.\-\+]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$


Nun kannst du mittels http://www.phpaes.com/ diese Adresse verschlüsseln und mittels http://www.clipperz.com/open_source/javascript_crypto_library auf Browserseite mittels JavaScript wieder entschlüsseln.
03.05.2011
Floyd 14,6k 3 9
1
Wie bekomme ich diese Ausdrücke jetzt sauber in eine Regex-Funktion von PHP? Irgendwie komme ich da nicht weiter...
johny7 03.05.2011
http://php.net/manual/en/function.preg-match.php
<?php
$subject = "abcdef bcd@doamin.de ausgdkad";
$pattern = '/^[a-zA-Z0-9_\.\-\+]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>
Floyd 03.05.2011

Stelle deine Javascript-Frage jetzt!