Lista de Filtros Disponibles
PHP Manual

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:

parámetros del filtro mcrypt
Parámetro ¿Requerido? Predeterminado Ejemplos
mode Opcional cbc cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir Opcional ini_get('mcrypt.algorithms_dir') Ubicación de los módulos de los algoritmos
modes_dir Opcional ini_get('mcrypt.modes_dir') Ubicación de los módulos de los modos
iv Requerido N/A Usualmente 8, 16, o 32 bytes de datos binarios. Depende del cifrado
key Requerido N/A Usualmente 8, 16, o 32 bytes de datos binarios. Depende del cifrado

Ejemplo #1 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 #2 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($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opciones);
$datos = rtrim(stream_get_contents($da));
fclose($da);

echo 
$datos;
?>

Lista de Filtros Disponibles
PHP Manual