Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2015, 02:08
Avatar de madman_18
madman_18
 
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 13 años, 8 meses
Puntos: 14
Exclamación Encriptación cifrado 3DES

Hola a todos!

Veréis, tengo que realizar unos cambios en la encriptación que usaba para comunicarme con un TPV virtual (antes usaba el sha1 pero por motivos de seguridad los están cambiando a una encriptación sha2).

En los pasos para adaptarlo, me piden un cifrado 3DES de una serie de valores pero nunca he usado ese tipo de cifrado. Viendo la documentación de php aquí hay que usar la función mcrypt pero hay algunas cosas que no entiendo.

- Mi código actual es el siguiente:
Código PHP:
Ver original
  1. $keyOperacion = mcrypt_encrypt(MCRYPT_3DES,$valor1,$valor2,MCRYPT_MODE_CFB);

Esto me hace que salte un error diciendo que no se puede inicializar el módulo...

- Leyendo un poco más de la documentación, necesito un valor (que llaman casi en toda la documentación "IV") que es como una especie de clave para realizar el cifrado.
Visto esto le añado a mi código lo siguiente:
Código PHP:
Ver original
  1. $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
  2. $iv = mcrypt_create_iv($size,MCRYPT_RAND);// Variable IV para mcrypt
  3. $keyOperacion = mcrypt_encrypt(MCRYPT_3DES,$valor1,$valor2,MCRYPT_MODE_CFB,$iv);
Pero me saca un error diciendo "The IV parameter must be as long as the blocksize"... la verdad que me tiene ya un poco negro

Me tiene un poco perdido (quizás los ejemplos que encuentro en la documentación de PHP me marean más que otra cosa )

Si pudiéseis echarme una mano en los pasos a seguir para dicho cifrado os lo agradezco!
Saludos!
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"