Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
20 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Desafios / Contact / Solucion de thessoro

Desafío Contact

#3 Solución de thessoro

Código de la Solución Ver código | Comentarios Ver comentarios (4) | Descargar Descargar código

Fecha: 03 octubre 2005

Tamaño: 6404 caracteres

Comentarios: 4

Solución online:
Lo siento, pero no está disponible

Valoración PuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuación 9.50 (2 votos)

"Algoritmos originales. Estos algoritmos no entran evidentemente a concurso por premios PPT ni a evaluación por los usuarios."

Valora esta solución

<?php
// Algoritmos originales del desafío Contact para php-hispano.net
// No calificable
function codificar($cadena) {
        
$cadena .= md5($cadena); $c2 = '';
        
$array = array('00'=>'*','01'=>'$','10'=>'&','11'=>'#');
        for (
$i = 0; $i < strlen($cadena); $i++) {
                
$bin = str_pad(decbin(ord($cadena{$i})),8,'0',STR_PAD_LEFT);
                
$c2 .= preg_replace('/([0-1]{2})/e','$array[\'\1\']',$bin);
        }
        return
str_replace('1','',preg_replace('/([\$&#\*]{4})(\1+)?/e','\'\1\'.((strlen(\'\2\')/4)+1)',$c2));
}

function
decodificar($cadena) {
        
$array = array('*'=>'00','$'=>'01','&'=>'10','#'=>'11');
        
$cadena = preg_replace('/([\$\#\&\*]{4})(?(1)([0-9]+))/e','str_repeat(\'\1\',\2)',$cadena);
        
$cadena = preg_replace('/([\$\#\&\*])([\$\#\&\*])([\$\#\&\*])([\$\#\&\*])/e','chr(bindec($array[\'\1\'].$array[\'\2\'].$ar
ray[\'\3\'].$array[\'\4\']))'
,$cadena);
        
$mensaje = substr($cadena,0,-32);       
        return
md5($mensaje) == substr($cadena,-32) ? $mensaje : false;
}
?>

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster