\'*\',\'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; } ?>