Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/08/2006, 06:46
alblan
 
Fecha de Ingreso: agosto-2006
Mensajes: 41
Antigüedad: 17 años, 8 meses
Puntos: 2
Aquí tienes una clase que te permite encriptar una cadena de caracteres y hacer la operación inversa.

Código PHP:
<?php
define 
(KEY,'this is a very long key, even too long for the cipher');
class 
Crypt {
    function 
encrypt($str) {
        
/* Open module, and create IV */
        
$td mcrypt_module_open(MCRYPT_RIJNDAEL_256''MCRYPT_MODE_CFB'');
        
$key substr(sha1(KEY), 0mcrypt_enc_get_key_size($td));
        
$iv_size mcrypt_enc_get_iv_size($td);
        
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);

        
/* Initialize encryption handle */
        
if (mcrypt_generic_init($td$key$iv) != -1) {

            
/* Encrypt data */
            
$c_t rtrim(mcrypt_generic($td$str));
            
mcrypt_generic_deinit($td);
            
mcrypt_module_close($td);
        }
        return 
$iv.$c_t;
    }
        
  function 
decrypt($str) {
        
/* Open module, and create IV */
        
$td mcrypt_module_open(MCRYPT_RIJNDAEL_256''MCRYPT_MODE_CFB'');
        
$key substr(sha1(KEY), 0mcrypt_enc_get_key_size($td));
        
$iv_size mcrypt_enc_get_iv_size($td);
        
$iv substr($str,0,$iv_size);
        
$str substr($str,$iv_size);

        
/* Initialize encryption handle */
        
if (mcrypt_generic_init($td$key$iv) != -1) {

            
/* Decrypt data */
            
$p_t mdecrypt_generic($td$str);
        
            
/* Clean up */
            
mcrypt_generic_deinit($td);
            
mcrypt_module_close($td);
        }
        return 
$p_t;
    }
}
?>
En el define del principio de la clase le indicas tu clave secreta.

Para recuperar el valor encriptado:
Código PHP:
<?php
$c 
= new Crypt();
$enc $c->encrypt('very important data');
?>
Para recuperar el valor original:
Código PHP:
<?php
$c 
= new Crypt();
$ori $c->decrypt($enc);
?>
Albert Lanchas