Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Consultar a la base de datos por el MD5 de una cadena (https://www.clubdelphi.com/foros/showthread.php?t=38810)

dec 29-12-2006 15:30:08

Consultar a la base de datos por el MD5 de una cadena
 
Hola,

Me pregunto si MySQL cuenta con alguna función que calcule el MD5 de una cadena... no sé cómo explicarlo... digamos que "al vuelo". Me explicaré. Supongamos que guardamos el MD5 de una URL y queremos consultar a la base de datos para averiguar cuántas URLs como la nuestra hay, pero, claro, contamos con el MD5 de la URL, no con la propia URL, así que habría que hacer algo así... supongo y siempre que sea posible:
Código SQL [-]
SELECT COUNT(*) FROM enlaces WHERE MD5(enlace_url) =  URL
Suponiendo que en la consulta SQL "URL" es una variable, que contiene, justamente, el MD5 de una URL cualquiera y "MD5()" una hipotética función que exista en MySQL... ¿Es esto posible? ¿Se os ocurre alguna manera de hacerlo? Muchas gracias de antemano. ;)

Bicho 29-12-2006 15:38:05

Hola dec,

pues parece que sí, ¿has buscado por google o es que me he liado yo?

http://www.mysql-hispano.org/page.php?id=44
http://mysql.conclase.net/curso/index.php?fun=MD5

Saludos

seoane 29-12-2006 15:43:35

:confused: Y por que en la base de datos junto con la url no guardamos su md5, así podríamos hacer la búsqueda por md5. Eso solo supondría 32 caracteres extra por cada url.

seoane 29-12-2006 15:44:40

Bicho 1 Seoane 0 :o

Bicho 29-12-2006 15:47:36

Creo que sería mejor así:

Bicho: 1 - Agonioso: muchos :D :p :D

Saludos

p.d: no cantes victoria. Aún me ipugnarán el resultado y me quitarán el único punto que tengo. ;)

dec 29-12-2006 15:50:48

Hola,

Bueno. Muchas gracias a los dos. Pensé lo que dices Seoane, pero, joroba, tacita a tacita... digo que aunque ocupen poco los MD5 algo ocuparán... :D No; pero, lo cierto es que como dice Bicho existe en MySQL la función "MD5" de modo que puede hacerse algo así:

Código SQL [-]
SELECT MD5(enlace_url) AS enlace_md5_url

Es justo lo que necesitaba... y seguro que aunque no para ahora es bueno tenerlo en cuenta, puesto que a veces convenga comparar MD5's y no valores como las URLs, precisamente, que pueden resultar muy "farragosas". Bueno. No me enrollo más. Muchas gracias a ambos. :)

seoane 29-12-2006 16:11:14

Cita:

Es justo lo que necesitaba... y seguro que aunque no para ahora es bueno tenerlo en cuenta, puesto que a veces convenga comparar MD5's y no valores como las URLs, precisamente, que pueden resultar muy "farragosas". Bueno. No me enrollo más. Muchas gracias a ambos.
Precisamente los sistemas antiphishing que están implementando algunos navegadores funcionan de una forma similar. Es decir, para comprobar si una url esta en la "lista negra" la envían a un servidor para que lo compruebe en una base de datos, pero en vez de enviar la url "tal cual" mandan su hash, de esa manera se supone que se mantiene la privacidad. Aunque ahora que lo pienso, si guardan en su base de datos el valor de la url y su hash, podrían encontrar la url original a partir de su hash ... ya estoy divagando otra vez :p


La franja horaria es GMT +2. Ahora son las 04:18:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi