Que tal gentes!!
¿Existe alguna manera de comprobar si un STRING es una cadena de texto normal o si es una cadena que ha sido transformada a su hash MD5?
| |||
Detectar cadena encriptada con MD5() Que tal gentes!! ¿Existe alguna manera de comprobar si un STRING es una cadena de texto normal o si es una cadena que ha sido transformada a su hash MD5?
__________________ El conocimiento es libre: Movimiento por la Devolución |
| |||
No sé si te servirá: Cita: fuente:mina86 at tlen dot pl 26-Feb-2004 09:14 In respons to Emin Sadykhov at 14-Oct-2003 12:47: The function presented by Emin isn't IMO simple, simpler is: Código PHP: www.php.net/md5 (Comentarios de los usuarios) Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Hay que partir de la base de que es virtualmente imposible 'descifrar' el md5. Así que lo que podés hacer es verificar si tiene el largo adecuado (no recuerdo ahora, pero creo que son 32 caracteres), si tiene solamente letras y números (además el md5() de php devuelve las letras en minúsculas), que todas las letras estén con la misma capitalización (todas minúsculas o todas mayúsculas) y no mucho más.... Tampoco estoy seguro de lo que voy a escribir ahora, pero creo que por las propias características del md5, cualquier cadena que tenga el largo adecuado, y cumpla con tener solamente letras y números podría ser una suma md5 de algo.... edito después de ver la respuesta de Cluster: justamente a eso me refería, lo único que se puede hacer es comprobar si tiene la forma correcta Saludos. |
| |||
Si, .. sólo se trata de ver si se cumple un "patrón" .. ya que el algoritmo del hash MD5() es conocido (32 caracteres de largo .. en cierto rango de caracteres) .. eso es lo más que se puede ver. Ahora .. que te "coincida" una cadena legítima (no "codificada") con ese patrón .. es "probable" que pudiera suceder (no a lo mejor en un contexto de datos que son "legibles" por humanos o "pronunciables" pero si en otro tipo de contexto: n° de série de productos .. etc). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Encontré por ahí una librería Javascript que devuelve el hash md5 de una cadena. Obviamente la mayor utilidad que prestaría es encriptar un password antes de que sea enviado al servidor, y así entregaría más seguridad dentro del trayecto entre el cliente (navegador) y el servidor. Y como el PHP recibe la cadena ya encriptada, sólo restaría insertarla en la base de datos (en caso que sea un formulario de registro) o comporarla con los password que se almacenan encriptados en la base de datos (en caso que sea un formulario de login). El inconveniente que veo es que si por X motivos el navegador no contara con Javascript, el PHP recibiría la cadena sin encriptar. Entonces el PHP necesitaría saber de alguna manera si la cadena que recibe viene encriptada o no para poder hacer el registro o la búsqueda en la base de datos. Lo único que se me ha ocurrido para poder hacer esa detección, sería que mediante Javascript insertar un campo oculto en el formulario. Y luego en el PHP que reciba los datos detectar si existe ese campo oculto ha sido enviado. Si no se detecta significa que el browser no pudo generarlo por no contar con Javascript, y por lo tanto tampo se pudo encriptar la cadena. Y por lo que veo es la solución que me entregaría un menor margen de error. ¿Estoy en lo correcto?
__________________ El conocimiento es libre: Movimiento por la Devolución |
| |||
Y por qué no usas los standares: SSL (Secure Socket Layer) .. eso es realmente seguro .. Todo lo demas puede plantear algún tipo de problema como los que mencionas y sólo asegurarían una "captura" de datos por el camino en el momento de ese "registro" de esa contraseña .. pero no el resto de datos (que viajan igualmente NO encriptados) no "certifica" que estás en una zona "segura" como lo hace el certificado SSL que acompaña a un dominio registrado en regla. Cita: Detectar si un navegador tiene javascript no es taréa de PHP. Intenta tratar el tema en el foro de Javascript. Lo único que se me ha ocurrido para poder hacer esa detección, sería que mediante Javascript insertar un campo oculto en el formulario. Y luego en el PHP que reciba los datos detectar si existe ese campo oculto ha sido enviado. Si no se detecta significa que el browser no pudo generarlo por no contar con Javascript, y por lo tanto tampo se pudo encriptar la cadena. Y por lo que veo es la solución que me entregaría un menor margen de error. ¿Estoy en lo correcto? Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |