Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/08/2010, 05:02
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Pasar variable GET encriptado con algoritmo de semilla

Solo es cuestión de convertir los datos en base64. Al menos tienes que convertir el encriptado y el iv.

Edito:
De esta forma logré que siempre me dé correctamente el mensaje encriptado.
Código PHP:
Ver original
  1. <?php
  2. function cryptMessage($message, $key){
  3.     /* Open the cipher */
  4.     $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
  5.  
  6.     /* Create the IV and determine the keysize length, use MCRYPT_RAND
  7.      * on Windows instead */
  8.     $ks = mcrypt_enc_get_key_size($td);
  9.     $iv = mcrypt_create_iv($ks, MCRYPT_RAND);
  10.  
  11.     /* Create key */
  12.     $key = substr(md5($key), 0, $ks);
  13.  
  14.     /* Intialize encryption */
  15.     mcrypt_generic_init($td, $key, $iv);
  16.  
  17.     /* Encrypt data */
  18.     $encrypted = mcrypt_generic($td, $message);
  19.  
  20.     /* Terminate encryption handler */
  21.  
  22.     return array('crypt' => base64_encode(urlencode($encrypted)),
  23.         'key' => base64_encode(urlencode($key)),
  24.         'iv' => base64_encode(urlencode($iv)));
  25. }
  26.  
  27. function decryptMessage($encrypted, $key, $iv){
  28.     /* Open the cipher */
  29.     $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
  30.  
  31.     /* Initialize encryption module for decryption */
  32.     mcrypt_generic_init($td, $key, $iv);
  33.  
  34.     /* Decrypt encrypted string */
  35.     $decrypted = mdecrypt_generic($td, $encrypted);
  36.  
  37.     /* Terminate decryption handle and close module */
  38.  
  39.     /* Show string */
  40.     return trim($decrypted);
  41. }
  42.  
  43. $crypt = cryptMessage('mensaje bien importante a ver si sale', 'llave importante');
  44.  
  45. if(isset($_GET['crypt']) && isset($_GET['key']) && isset($_GET['iv'])){
  46.     echo decryptMessage(urldecode(base64_decode($_GET['crypt'])), urldecode(base64_decode($_GET['key'])), urldecode(base64_decode($_GET['iv']))) . '<br />';
  47. }
  48. ?>
  49.  
  50. <a href="<?php echo $_SERVER["PHP_SELF"]; ?>?crypt=<?php echo $crypt['crypt']; ?>&key=<?php echo $crypt['key']; ?>&iv=<?php echo $crypt['iv']; ?>">Mensaje</a>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 30/08/2010 a las 05:45