• Domingo 22 de Diciembre de 2024, 23:35

Autor Tema:  Encryptar un archivo  (Leído 2697 veces)

andres69

  • Miembro MUY activo
  • ***
  • Mensajes: 117
  • Nacionalidad: mx
    • Ver Perfil
    • http://alldownload.foroes.net
Encryptar un archivo
« en: Miércoles 14 de Abril de 2010, 07:31 »
0
Hola miagos

como puedo encriptar un archivo php en el mismo codigo del archivo? es decir tengo lo siguiente en un archivo php:
Código: PHP
  1.  
  2. <?php
  3. $variable="hola";
  4. echo $variable
  5. ?>
  6.  
  7.  

Ahora para encriptar tengo esto:
Código: PHP
  1.  
  2. <?php
  3. $archivo = 'archivo.php';
  4. $cadena_md5_file = md5_file($archivo);
  5. ?>
  6.  
  7.  

y lo que he intentado es lo siguiente:

Código: PHP
  1.  
  2. <?php
  3. $variable="hola";
  4. echo $variable
  5. $archivo = 'archivo.php';
  6. $cadena_md5_file = md5_file($archivo);
  7. ?>
  8.  
  9.  

Bueno y lo e intentado de varias formas pero no mas no logro encryptar ese archivo

Espero que se pueda y me puedan ayudar

GRACIAS

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Encryptar un archivo
« Respuesta #1 en: Jueves 15 de Abril de 2010, 00:25 »
0
La función md5_file() no sirve para encriptar archivos, solamente calcula un hash del archivo (sirve, en todo caso, para saber si el archivo fue modificado).

andres69

  • Miembro MUY activo
  • ***
  • Mensajes: 117
  • Nacionalidad: mx
    • Ver Perfil
    • http://alldownload.foroes.net
Re: Encryptar un archivo
« Respuesta #2 en: Jueves 15 de Abril de 2010, 01:22 »
0
hola driverop!

gracias por contestarme!

mmm en tonces como piuede hacerle para encryptarlo?

nuevamente gracias!

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Encryptar un archivo
« Respuesta #3 en: Jueves 15 de Abril de 2010, 04:05 »
0
Antes una pequeña explicación de por qué no servía lo que intentabas hacer.
Tanto los algoritmos MD5 como SHA son algoritmos de encriptación de un solo sentido, esto quiere decir que del texto en claro se obtiene una cadena única con un tamaño fijo, un hash. Pero teniendo el hash no es posible regresar al texto en claro. Es decir, por más que tengas el hash de un texto en claro, no hay forma de deducir el texto en claro a partir del hash (bueno, eso es en teoría, todos sabemos que no hay encriptación infalible :P). Pero podrías preguntarte entonces ¿para qué demonios sirve algo así?, pues para encriptar claves por ejemplo. Tienes una clave, calculas su hash (mediante MD5 o SHA) y guardas ese hash en vez de la clave. Luego cuando quieres comprobar que una clave es válida (por ejemplo en un formulario de acceso), lo que tienes que hacer es volver a calcular el hash de la palabra que se supone es la clave y comparar ese hash con el que tienes almacenado.

Pero lo que tú necesitas no es eso, sino tomar un archivo, encriptarlo usando alguna clave para luego poder desencriptarlo, es decir, quieres a partir del archivo encriptado obtener el archivo en texto en claro. Para eso se usan algoritmos de doble sentido como AES.

PHP tiene una serie de funciones genéricas en el módulo Mcrypt. Tu copia de PHP debe haber sido compilada incluyendo este módigo (generalmente lo está), para comprobar si este módulo está disponible en tu copia de PHP ejecuta la función php_info(); y en la tabla que te genera busca si Mcrypt está "enabled".

Si lo está entonces procede a leer esta página: http://ar.php.net/manual/es/book.mcrypt.php
Las funciones que te interesan son mcrypt_generic() y mdecrypt_generic(), pero no son las únicas que debes usar dependiendo del algoritmo que quieres usar.