Fig. 1. Parámetros de mcrypt_encrypt
El primer parámetro de esta función hace referencia al algoritmo que emplearemos. Pero, ¿qué algoritmos podemos utilizar? Para ver los que hay disponibles en nuestro sistema, podemos utilizar la función mcrypt_list_algorithms. Por ejemplo, así:
1 <?php 2 echo "<pre>" . print_r (mcrypt_list_algorithms (), TRUE) . "</pre>"; 3 ?>
Listado 1. ¿Qué algoritmos puedo utilizar para cifrar mis datos?
He probado esto en Windows y la salida ha sido la siguiente:
Figura 2. ¡Hala, qué variedad para elegir! Pito, pito, gorgorito...
Pero, al probar lo mismo en Ubuntu, la salida ha sido...
...
¡absolutamente nada!
Pero... ¿qué está pasando?????
Fig. 2. WTF!!!!!?????
Vale. Tras un poco de surfeo web, parece ser que hay que hacer una receta de 3 pasos:
1) Instalar php5-mcrypt
2) Reiniciar el servidor web
3) Habilitar la extensión mcrypt
2) Reiniciar el servidor web
3) Habilitar la extensión mcrypt
1) Instalar php5-mcrypt
$ sudo apt-get install php5-mcrypt
Como podemos deducir del nombre, hemos de disponer de la versión 5 o superior de PHP. ¿Que cómo sabemos cuál tenemos? Pues así:
$ php -v
Si no tienes la 5 o superior, actualízala (si puedes).
2) Reiniciar Apache
Tienes varias formas. Por ejemplo, así
$ sudo /etc/init.d/apache2 restart
o bien
$ sudo service apache2 restart
Tras esto, aún seguimos sin poder obtener los algoritmos de cifrado ("cifradores" los llama la documentación oficial de PHP) disponibles.
3) Habilitar la extensión en el fichero php.ini
Para ello, se incluye la línea
extension = mcrypt.so
en el fichero de configuración de PHP, el famoso php.ini.
Y ahora ya... ¡sí! Al ejecutar en Ubuntu el script de antes (Listado 1) obtenemos la salida
Figura 3. La misma lista de "cifradores" que en Windows, aunque cambie el orden de algunos elementos
Hala, ya podéis darle un buen uso a las funciones de cifrado.
No hay comentarios:
Publicar un comentario