Etiquetado de la entrada: encriptacion


9
Mar 10

Protección de email con hide-email

Leo en kabytes (un blog más que recomendado) una utilidad para encriptar el email en webs para robots curiosos con una función bastante simple y eficiente con php que genera javascript.
El uso en bien sencillo

<?php echo( hide_email('test@test.com') ); ?>

Hace uso de la función:

function hide_email( $email ) {
  $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ' . '_abcdefghijklmnopqrstuvwxyz';
  $key = str_shuffle($character_set); $cipher_text = ''; $id = 'e'.rand(1,999999999);
  for ($i=0;$i<strlen($email);$i+=1)
    $cipher_text.= $key[strpos($character_set,$email[$i])];
  $script = 'var a="'.$key.'";var b=a.split("").sort().join("");var c="'.$cipher_text.'";var d="";';
  $script.= 'for(var e=0;e<c.length;e++)d+ = b.charAt(a.indexOf(c.charAt(e)));';
  $script.= 'document.getElementById("'.$id.'").innerHTML = "<a href=\\"mailto:"+d+"\\">"+d+"</a>"';
  $script = "eval(\"".str_replace(array("\\",'"'), array("\\\\",'\"'), $script)."\")";
  $script = '<script type="text/javascript"> /* <![CDATA[*/'.$script.'/*]]>*/</script>';
  return '<span id="'.$id.'">[javascript protected email address]</span>'.$script;
}

Esta función se encuentra disponible en www.maurits.vdschee.nl/php_hide_email/


2
Mar 10

Codificación en Rot13 de una cadena

Este sistema de codificación (encriptación) de cadenas ya fue usado por Julio César (con un desplazamiento de 3 caracteres siempre hacia adelante) y aunque en general es fácil de decodificar, para almacenar datos no sensibles de forma temporal podría ser útil. La función de esta encriptación es el desplazamiento por el abecedario de cada caracter 13 posiciones hacia delante o hcia atrás en función de qué caracter se trate.

function rot13( $cadena ) {
    for( $i = 0; $i < strlen( $cadena ); $i++ ) {
        $caracter = ord( $cadena[$i] );
        if ($caracter >= ord( 'n' ) & $caracter <= ord( 'z' ) | $caracter >= ord( 'N' ) & $caracter <= ord( 'Z' ) )
            $caracter -= 13;
        elseif ($caracter >= ord( 'a' ) & $caracter <= ord( 'm' ) | $caracter >= ord( 'A' ) & $caracter <= ord( 'M' ) )
            $caracter += 13;
        $cadena[$i] = chr( $caracter );
    }
    return $cadena;
}