Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/08/2009, 15:29
Avatar de juanolo
juanolo
 
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años, 9 meses
Puntos: 5
Exclamación Respuesta: Pregunta sobre encriptacion

Cita:
Iniciado por urgido Ver Mensaje
Intenta asi

$variable_encriptada=AQUI EL COMANDO PARA ENCRIPTAR QUE USAS;

INSERT INTO usuarios ( nick, clave) VALUES ('pepin', '$variable_encriptada') or die(mysql_error());


e intenta poner el tipo de campo en TEXT y no en varchar

Saludos
He cambiado el campo a TEXT y sin limite de caracteres.

Uso estos parametros...
$texto = "Esta es la frase oculta";
$key = "millavedeencriptacion";
$alg = "3des"; //tipo de algoritmo
$crypt = 1; //1 encripta y 0 desencripta


Para la llamada de esta funcion...
$clave_encriptada = cryptare($texto, $key, $alg, $crypt);

y la funcion a la que llama es esta...
Código php:
Ver original
  1. <?php
  2. function cryptare($texto, $key, $alg, $crypt)
  3. {
  4.     $encrypted_data="";
  5.     switch($alg)
  6.     {
  7.         case "3des":
  8.             $td = mcrypt_module_open('tripledes', '', 'ecb', '');
  9.             break;
  10.         case "cast-128":
  11.             $td = mcrypt_module_open('cast-128', '', 'ecb', '');
  12.             break; 
  13.         case "gost":
  14.             $td = mcrypt_module_open('gost', '', 'ecb', '');
  15.             break; 
  16.         case "rijndael-128":
  17.             $td = mcrypt_module_open('rijndael-128', '', 'ecb', '');
  18.             break;     
  19.         case "twofish":
  20.             $td = mcrypt_module_open('twofish', '', 'ecb', '');
  21.             break; 
  22.         case "arcfour":
  23.             $td = mcrypt_module_open('arcfour', '', 'ecb', '');
  24.             break;
  25.         case "cast-256":
  26.             $td = mcrypt_module_open('cast-256', '', 'ecb', '');
  27.             break; 
  28.         case "loki97":
  29.             $td = mcrypt_module_open('loki97', '', 'ecb', '');
  30.             break;     
  31.         case "rijndael-192":
  32.             $td = mcrypt_module_open('rijndael-192', '', 'ecb', '');
  33.             break;
  34.         case "saferplus":
  35.             $td = mcrypt_module_open('saferplus', '', 'ecb', '');
  36.             break;
  37.         case "wake":
  38.             $td = mcrypt_module_open('wake', '', 'ecb', '');
  39.             break;
  40.         case "blowfish-compat":
  41.             $td = mcrypt_module_open('blowfish-compat', '', 'ecb', '');
  42.             break;
  43.         case "des":
  44.             $td = mcrypt_module_open('des', '', 'ecb', '');
  45.             break;
  46.         case "rijndael-256":
  47.             $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
  48.             break;
  49.         case "xtea":
  50.             $td = mcrypt_module_open('xtea', '', 'ecb', '');
  51.             break;
  52.         case "enigma":
  53.             $td = mcrypt_module_open('enigma', '', 'ecb', '');
  54.             break;
  55.         case "rc2":
  56.             $td = mcrypt_module_open('rc2', '', 'ecb', '');
  57.             break; 
  58.         default:
  59.             $td = mcrypt_module_open('blowfish', '', 'ecb', '');
  60.             break;                                         
  61.     }
  62.    
  63.     $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
  64.     $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  65.     mcrypt_generic_init($td, $key, $iv);
  66.    
  67.     if($crypt)
  68.     {
  69.         $encrypted_data = mcrypt_generic($td, $texto);
  70.     }
  71.     else
  72.     {
  73.         $encrypted_data = mdecrypt_generic($td, $texto);
  74.         echo($encrypted_data);
  75.     }
  76.    
  77.    
  78.     return $encrypted_data;
  79. }
  80. ?>


Cuando me retorna $encrypted_data hago la consulta...
Código mysql:
Ver original
  1. $consulta = 'INSERT INTO usuarios (
  2.         nick,
  3.         clave)
  4.         VALUES (
  5.         "'.$_POST['registro_nick'].'",
  6.         "'.$clave_encriptada.'"
  7.         )';
  8.         $resultado = mysql_query($consulta,$conexion);     
  9.         $id_usuario= mysql_insert_id();


Pero nada, insertar me inserta el usuario, pero con el campo clave vacio.