Cifrado con Rijndael (AES) simétrico en PHP
A continuación, un ejemplo funcional de un cifrado de datos simétrico usando Rijndael en su modo de 256bits.
<?php
header(“Content-Type: text/plain; charset=utf-8″);# Creamos una clave de 256bits o 32 caracteres
$key = md5(“Clave para el cifrado de datos `12345`!·$%&/()=”);# Cadena a encriptar
$data = “Estamos aquí reunidos para ver el funcionamiento de un cifrado simétrico. ALE!”;/**
* PROCESO DE CIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);# Cifra los datos
$encryptedData = mcrypt_generic($td, $data);# Termina el manejador de cifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);# Muestra el cifrado
echo “Cifrado:\n{$encryptedData}\n\n”;/**
* PROCESO DE DESCIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);# Descifra los datos
$decryptedData = mdecrypt_generic($td, $encryptedData);# Termina el manejador de descifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);# Muestra el descifrado
echo “Descifrado:\n{$decryptedData}\n\n”;
?>
Aquí se ha utilizado una clave de longitud fija de 32 caracteres, pero hay muchas más variantes y posibilidades. Desde utilizar una longitud aleatoria hasta tener 2 claves y un sin fin de opciones más. Podemos complicarlo lo que queramos, contra más complicado más difícil será reventarlo (aunque todavía no se conoce el método).
Ale!!
0051 – Rayman Advance
F-Zero Maximum velocity
Super Street Fighter 2 X Revival
#1 Death Note
#2 Full Metal Alchemist
#3 Code Geass
#4 Tengen Toppa Gurren-Lagann
#5 Claymore
#6 Gundam Seed
#7 Gundam Seed Destiny
Buenas. Si queréis ver vuestros DivX en la TV del comedor a través de imagenio o simplemente poder ver las tribunas en la TV os interesa leer este tutorial. Lo que vamos a hacer, es bloquear un canal de imagenio (cualquiera de esos que no ve nadie) para que sea el canal receptor de todo lo que pueda llegar a reproducir el VLC Media Player.
Para aquellos que utilizan el Media Player Classic y las peliculas HD 1080p no las reproduce fluidas, existe un cocec que consume menos CPU y gracias a este codec he podido ver las peliculas FULL HD correctamente.
Últimos comentarios