Clase que Encripta y Desencripta un texto

PHP:
  1. <?php
  2. /*
  3. *  Clase para encriptar
  4. * Por ejemplo:
  5. *
  6. *  cripto = new Crypto('123');
  7. *  $texto = "Hola Mundo";
  8. *  $encriptado = cripto->encrypt($texto);
  9. *  $desencriptado = cripto->decrypt($encriptado);
  10. *  echo $texto;
  11. *  echo $encriptado;
  12. *  echo $desencriptado;
  13. */
  14. class Crypto
  15. {
  16.     var $key;
  17.  
  18.     //incializamos la clase con la llave que usaremos. Nota: La llave para encriptar y desencriptar siempre debe ser la misma
  19.     function Crypto( $llave )
  20.     {
  21.         $this->key = $llave;
  22.     }
  23.  
  24.  
  25.     //Enviamos un texto y lo regresa encriptado
  26.     function encrypt ( $strtoencrypt )
  27.     {
  28.    
  29.         $td = mcrypt_module_open('tripledes', '', 'ecb', '');
  30.         $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
  31.         mcrypt_generic_init($td, $this->key, $iv);
  32.         $encrypted_data = mcrypt_generic($td, $strtoencrypt);
  33.         mcrypt_generic_deinit($td);
  34.         mcrypt_module_close($td);   
  35.         return  bin2hex($encrypted_data);
  36.    
  37.     }
  38.  
  39.  
  40.     //enviamos un texto encriptado y regresa el texto normal
  41.     function decrypt ( $strtodecrypt )
  42.     {
  43.    
  44.         $bindata="";
  45.         
  46.         for ($i=0;$i<strlen($strtodecrypt);$i+=2) {
  47.            $bindata.=chr(hexdec(substr($strtodecrypt,$i,2)));
  48.         }               
  49.         $td = mcrypt_module_open('tripledes', '', 'ecb', '');
  50.         $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
  51.         return mcrypt_decrypt ( 'tripledes' , $this->key,$bindata, "ecb" , $iv);       
  52.        
  53.     }
  54.  
  55.  
  56. }
  57.  
  58. ?>

Popularidad: 11%