Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/10/2009, 10:24
samuelrojasp
 
Fecha de Ingreso: enero-2008
Mensajes: 7
Antigüedad: 17 años
Puntos: 0
Respuesta: Re: Desencriptar con AES

Cita:
Iniciado por gnzsoloyo Ver Mensaje
AES (Rijndael) utiliza el mejor código de encriptación hasta ahora desarrollado, y que según se explica en diversos artículos, es el que está en uso por el gobierno de EE.UU. actualmente.
En ese sentido, se lo considera mucho más seguro que el MD5. Y no, el objetivo de un código de encriptación no es que no se lo pueda desencriptar, sino que no se lo pueda quebrar, es decir, que nadie que no tenga la clave de encriptación pueda, a su vez, desencriptarlo.
El nivel de seguridad del aes está plenamente confirmado por documentación
Por todo esto, el problema no tiene que ver con la capacidad de encriptar o desencriptar que el método AES_ENCRYPT tenga. Tu problema puede tener otro origen.
Yo veo dos posibilidades:
1. Existe algún conflicto con las COLLATION usadas en tu base y en el server de internet.
2. Existe algún tipo de problema en cuanto a la longitud de la clave almacenada. Esto lo he visto antes. Para el caso, por ejemplo, aunque tu pongas un password para un user de MySQL de 3 caracteres, la clave encriptada tendrá 41. En el caso de AES, la clave encriptada tendrá como mínimo 16, no importa qué pongas, pero puede tener muchos más (256, según entiendo). ¿Estás almacenando la cantidad correcta de bytes?
Estas mezclando peras y manzanas...

MD5 no es un algoritmo de encriptacion bidireccional, es un generador de hash en base a una cadena, donde teoricamente existe un solo hash para cierta cadena dada. Como es Unidireccional no se puede reversar, solo se usa para comparar el resultado almacenado en la BD, con el ingresado por el usuario que se loguea. Es muy seguro desde este punto de vista (ya que ni el adminsitrador del sistema se entera de la clave aunque quiera), pero si pierdes la contraseña, no la puedes recuperar.

La vulnerabilidad de MD5 es sencillamente que se descubre que si existen dos cadenas con el mismo hash, posiblidad remota, pero la hay, y bueno, aun lo suficientemente segura para mortales como nosotros. Si eres el Webmaster de la NASA y tienes MD5, quizas podrias cambiarte a SHA-1 que es el algoritmo de Digest que usa el gobierno de los EU.

Por otra parte, AES es un algoritmo de encriptacion Bidireccional, es decir, dada una cadena, y una llave de encriptacion obtenemos una cadena unica encriptada que puede ser aclarada mediante un proceso inverso. Se considera uno de los algoritmos mas seguros, y efectivamente es utilizado por el Gobierno de los EU, sin embargo no en la longitud de clave que viene por defecto en MySQL. MySQL usa longitudes de clave de 128-bits, enchulable (mediante recompilacion) a 256-bits, lo cual se que la mayoria no acostumbra hacer, porque al sano juicio de un webmaster que no esta en la cuspide de la seguridad gubernamental no le es necesario.

Tu problema seria mejor analizado si nos pegaras el codigo involucrado, tengo la intuicion de que has usado campos text para almacenar datos encriptados.

Considera que AES guarda los datos en la BD en formato binario, por lo tanto es apropiado usar campos tipo BLOB.

Pero insisto, peganos tu codigo aqui, vale?