Seite 1 von 1

[Neues Modul] Mails verschlüsseln (gegen Harvester)

Verfasst: Do 14. Okt 2004, 20:44
von djw
Da ich hier schon viel Hilfe gefunden habe bringe ich auch mal was ein.
Ist nicht ganz von mir - habe es jedoch an Contenido angepasst.

Mit dem Modul kann man diverse Texte (Hauptsächlich Mails) verschlüsseln um sie so vor den Harvestern zu verstecken (wobei die auch immer besser werden)

Code: Alles auswählen

<?php
/** 
* MailEncode
* 
* Output
* 
* @autor DJ W. Eventservice <markus@dj-w.de> 
* @copyright www.dj-w.de 2004 
*/ 

/*
* URL Encoder script.
* Version 1.0 - February 2002
* (c) 2002, Paul Gregg <pgregg@pgregg.com>
* http://www.pgregg.com
*
* Function: Take an href link and the visible text and make an obfuscated
* link to prevent search engines (or spam harvesters) from picking it up.
*
* Open Source Code:   If you use this code on your site for public
* access (i.e. on the Internet) then you must attribute the author and
* source web site: http://www.pgregg.com/projects/
* You must also make this original source code available for download
* unmodified or provide a link to the source.  Additionally you must provide
* the source to any modified or translated versions or derivatives.
*
*/


//$PHP_SELF = $_SERVER['PHP_SELF'];
$href = isset($_POST['href']) ? $_POST['href'] : '';
$text = isset($_POST['text']) ? $_POST['text'] : '';
$func = isset($_POST['func']) ? $_POST['func'] : '';
//printf("<p align=right><a href=\"%ss\">Source code</a></p>\n", $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'] );

$encoder_functions = array (
    "transpose" => "Transpose characters / Javscript",
    "hash" => "Hashes characters / No Javscript"
);
$valid_functions = array_keys($encoder_functions);


if ($href != "") {
# Encode the $href string according to the selected function
if ($text == "")
    $text = "No text specified.";
    Function escapeencode ($str) {
    $ret = "";
    $arr = unpack("C*", $str);
    foreach ($arr as $char)
    $ret .= sprintf("%%%X", $char);
    return $ret;
}
Function transpose($str) {
# function takes the string and swaps the order of each group of 2 chars
$len = strlen($str);
$ret = "";
for ($i=0; $i<$len; $i=$i+2) {
    if ($i+1 == $len)
        $ret .= substr($str, $i, 1);
    else
        $ret .= sprintf("%s%s", substr($str, $i+1, 1), substr($str, $i, 1));
    }
    return $ret;
}
$href = preg_replace("/[;,]/", "", $href);
if (! isset($func) ) {
    $func = "transpose";
} else {
if (! in_array($func, $valid_functions) )
    $func = "transpose";  # prevent bogus functions
}
printf("<p><b>%s</b> wird verschlüsselt mit der <b>%s</b> Verschlüsselung</p>\n ",
htmlspecialchars($href), $func);
if ($func == "transpose") {
    $code = sprintf("var s='%s';var r='';for(var i=0;i<s.length;i++,i++){r=r+s.substring(i+1,i+2)+s.substring(i,i+1)}document.write('<a href=\"'+r+'\">%s</a>');", transpose($href), $text);
    $UserCode = sprintf("%s%s%s",
    "<SCRIPT language=\"javascript\">eval(unescape('",
    escapeencode($code),
    "'))</SCRIPT>");
} elseif ($func == "hash") {
    $prepend = "";
    if (preg_match("/^mailto:/", $href)) {
        $href = preg_replace("/^mailto:/", "", $href);
        $prepend = "mailto:";
    }
    if (preg_match("/^http:\/\//", $href)) {
        $href = preg_replace("/^http:\/\//", "", $href);
        list($server,$url) = split("/", $href, 2);
        $href = $url;
        $prepend = "http://$server/";
    }
    $UserCode = sprintf("<a href=\"%s%s\">%s</a>",
    $prepend,
    escapeencode($href), $text);
}
echo '
        <table>
            <tr>
            	<td>Der Code lautet:</td>
            </tr>
            <tr>
            	<td>'.htmlspecialchars($UserCode).'</td>
            </tr>
            <tr>
            	<td>Angezeigt wird: '.$UserCode.'</td>
            </tr>
            <tr>
            	<td>Dies bitte in den HTML Quellcode kopieren</td>
            </tr>  
        </table>
        ';
} else {
        print '<form method=POST action='.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'>';
        ?>
        <table>
        <tr><td>Link</td>
        <td><input type=text name=href value="mailto:" size=30></td>
        </tr>
        <tr><td>Anzuzeigender Text</td>
        <td><input type=text name=text value="" size=30></td>
        </tr>
        <tr><td>Verschlüsselungs  Methode</td>
        <td><select name=func>
        <?php
        foreach ($encoder_functions as $key => $value)
        printf("<option value=\"%s\">%s</option>", $key, $value);
        ?>
        </select></td>
        </tr>
        <tr><td></td><td><input type=submit value="Encode"></td></tr>
        </table>
        </form>

        <?php
}
?>


Verfasst: Do 4. Nov 2004, 16:13
von emergence
passt zwar nicht direkt dazu aber da hab ich was nettes gesehen...
kein eigenständiges modul sondern ne klasse
-> http://www.phpclasses.org/browse/package/1923.html