Lista de Filtros Disponíveis
PHP Manual

Filtros de Criptografia

Os filtros mcrypt.* e mdecrypt.* permitem criptografar e descriptografar usando libmcrypt. Ambos os conjuntos de filtros suportam os mesmos algoritmos disponíveis na extensão mcrypt na forma de mcrypt.ciphername onde ciphername é o nome da cifra como seria passada para mcrypt_module_open(). Os cinco filtros a seguir estão disponíveis:

Parâmetros para os filtros mcrypt
Parâmetro É Necessário? Valor Padrão Exemplos de Valores
mode Opcional cbc cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir Opcional ini_get('mcrypt.algorithms_dir') Localização do módulos de algoritmos
modes_dir Opcional ini_get('mcrypt.modes_dir') Localização do módulos de modos
iv Necessário N/A Tipicamente 8, 16, or 32 bytes de dados binários. Dependa da cifra.
key Necessário N/A Tipicamente 8, 16, or 32 bytes de dados binários. Dependa da cifra.

Exemplo #1 Criptografando saída de arquivo usando 3DES

<?php
$passphrase 
= 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) . 
               
md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Exemplo #2 Lendo um arquivo criptografado

<?php
$passphrase 
= 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) . 
               
md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo 
$data;
?>

Lista de Filtros Disponíveis
PHP Manual