Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/09/2007, 10:48
mhatter
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Activar filtros en PHP

Parece que fuera un problema en la documentación. Quizás en algún momento, alrededor de PHP 4.3 a juzgar por la fecha en que se agregó la documentación que señalas, se pensó incluir filtros mcrypt predeterminados, pero ese código nunca llegó a ser parte de PHP.

Aun así, registrar un filtro para ese propósito en PHP no es muy complicado, échale un vistazo a la documentación de la función stream_filter_register(). Un ejemplo:

Código PHP:
class McryptTripledes extends php_user_filter {
    var 
$td;

    function 
filter ($entrada$salida, &$consumido$cerrando)
    {
        while (
$recurso stream_bucket_make_writeable ($entrada)) {
            
$recurso->data mcrypt_generic ($this->td$recurso->data);
            
$consumido += $recurso->datalen;
            
stream_bucket_append ($salida$recurso);
        }
        return 
PSFS_PASS_ON;
    }

    function 
onCreate ()
    {
        
// Opciones predeterminadas en caso de que no sean definidas
        
$iv =    '00000001';
        
$clave '00000002';

        if (isset (
$this->params['iv']))
            
$iv $this->params['iv'];

        if (isset (
$this->params['clave']))
            
$clave $this->params['clave'];

        
$this->td mcrypt_module_open('tripledes''''ecb''');

        
mcrypt_generic_init($this->td$clave$iv);
    }

    function 
onClose ()
    {
        
mcrypt_generic_deinit($this->td);
        
mcrypt_module_close($this->td);
    }
}

stream_filter_register ('mcrypt_tripledes''McryptTripledes');


// Ejemplo de uso
$opciones = array(
    
'iv'    => '12345678',
    
'clave' => 'Bla bla bla');

$aa fopen('archivo-secreto.enc''wb');
stream_filter_append ($aa'mcrypt_tripledes',
                      
STREAM_FILTER_WRITE$opciones);
fwrite($aa'Mi secreto');
fclose($aa);