Foros del Web » Programando para Internet » PHP »

Activar filtros en PHP

Estas en el tema de Activar filtros en PHP en el foro de PHP en Foros del Web. Estoy estudiando los filtros que hay en PHP para aplicar a streams y no consigo activar los filtros mcrypt Tengo la biblioteca mcrypt activada en ...
  #1 (permalink)  
Antiguo 20/09/2007, 09:41
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 4 meses
Puntos: 1
Activar filtros en PHP

Estoy estudiando los filtros que hay en PHP para aplicar a streams y no consigo activar los filtros mcrypt

Tengo la biblioteca mcrypt activada en el php.ini, pero en el phpinfo() no me aparecen los filtros correspondientes:

Cita:
Registered Stream Filters: convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, zlib.*, bzip2.*
Si utilizo las funciones de encriptación, estas funcionan correctamente.

¿Alguien sabe como activar esos filtros?

Por cierto, esta es la página del manual de PHP de los filtros a los que me refiero: http://www.php.net/manual/es/filters.encryption.php (precisamente, el ejemplo N-10 no me funciona)

Gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 22/09/2007, 10:48
 
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); 
  #3 (permalink)  
Antiguo 22/09/2007, 13:41
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 4 meses
Puntos: 1
Re: Activar filtros en PHP

Vaya... pues seguro que es eso, ya que en el manual que me descargué en .chm no aparece la entrada a esa parte de la documentación en el índice (aunque sí la puedes ver si presionas el botón siguiente estando en la sección anterior a esa, que fue la forma en la que yo me la encontré).

Gracias por la aclaración, y por el código de ejemplo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:34.