Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/01/2011, 12:40
walterdevel
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 11 meses
Puntos: 51
Respuesta: Algoritmo Rijndael de 128 bits en php

Te paso un ejemplo mio funcionando 100%:

Código PHP:
Ver original
  1. function hex2bin($hexdata) {
  2.   $bindata = "";
  3.   for ($i = 0; $i < strlen($hexdata); $i += 2) {
  4.     $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
  5.   }
  6.   return $bindata;
  7. }
  8.  
  9.  
  10. define('CIPHER_IV', hex2bin(md5('123456789abcdefg')));
  11.  
  12.  
  13. function decrypt($code, $key) {
  14.  
  15.   //$code = hex2bin($code);
  16.   $td = mcrypt_module_open("rijndael-128", "", "cbc", "fedcba9876543210");
  17.  
  18.   mcrypt_generic_init($td, $key, "fedcba9876543210");
  19.   $decrypted = mdecrypt_generic($td, $code);
  20.  
  21.  
  22.   return $decrypted;
  23. }
  24.  
  25. function encrypt($str, $key) {
  26.   $td = mcrypt_module_open("rijndael-128", "", "cbc", "fedcba9876543210");
  27.  
  28.   mcrypt_generic_init($td, $key, "fedcba9876543210");
  29.   $encrypted = mcrypt_generic($td, $str);
  30.  
  31.  
  32.   return $encrypted;
  33. }
  34.  
  35.  
  36. $iv = "fedcba9876543210";
  37.  
  38. $key = '123456789abcdefg';
  39.  
  40.  
  41. $string = 'esta es la candea a encriptar/desencriptar';
  42.  
  43. $c = base64_encode(encrypt($string, $key));
  44. $o = decrypt(base64_decode($c), $key);

se usa base64 porque el AES devuelve caracteres no logibles.

Última edición por walterdevel; 07/01/2011 a las 12:41 Razón: PD: $iv y $key son tus llaves