Filtros de Encripción

mcrypt.* y mdecrypt.* ofrecen encripción y desencripción simétrica usando libmcrypt. Ambos conjuntos de filtros soportan los mismos algoritmos disponibles a la extensión mcrypt en la forma de mcrypt.ciphername, en donde ciphername es el nombre del cifrado que debe ser pasado a mcrypt_module_open(). Los siguientes cinco parámetros se encuentran disponibles también:

Tabla N-1. parámetros del filtro mcrypt

Parámetro¿Requerido?PredeterminadoEjemplos
modeOpcionalcbccbc, cfb, ecb, nofb, ofb, stream
algorithms_dirOpcionalini_get('mcrypt.algorithms_dir')Ubicación de los módulos de los algoritmos
modes_dirOpcionalini_get('mcrypt.modes_dir')Ubicación de los módulos de los modos
ivRequeridoN/AUsualmente 8, 16, o 32 bytes de datos binarios. Depende del cifrado
keyRequeridoN/AUsualmente 8, 16, o 32 bytes de datos binarios. Depende del cifrado

Ejemplo N-10. Encripción de la salida usando 3DES

<?php
$frase_secreta
= 'Mi secreto';

/* Convertir una frase legible en una pareja iv/llave reproducible
*/
$iv = substr(md5('iv'.$frase_secreta, true), 0, 8);
$llave = substr(md5('contrasenya1'.$frase_secreta, true) .
               
md5('contrasenya2'.$frase_secreta, true), 0, 24);
$opciones = array('iv'=>$iv, 'key'=>$key);

$da = fopen('archivo-secreto.enc', 'wb');
stream_filter_append($da, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opciones);
fwrite($da, 'Datos muy muy muy secretos');
fclose($da);
?>

Ejemplo N-11. Lectura de un archivo encriptado

<?php
$frase_secreta
= 'Mi secreto';

/* Convertir una frase legible en una pareja iv/llave reproducible
*/
$iv = substr(md5('iv'.$frase_secreta, true), 0, 8);
$llave = substr(md5('contrasenya1'.$frase_secreta, true) .
               
md5('contrasenya2'.$frase_secreta, true), 0, 24);
$opciones = array('iv'=>$iv, 'key'=>$llave);

$da = fopen('archivo-secreto.enc', 'rb');
stream_filter_append($da, 'mdecrypt.tripledes', STREAM_FILTER_WRITE, $opciones);
$datos = rtrim(stream_get_contents($da));
fclose($da);

echo
$datos;
?>

Hosting by: hurra.com
Generated: 2007-01-26 18:00:54