Hola hoy tube la necesidad de realizar una consulta que me permitiera identificar el
usuario de una
tabla de usuarios que coincidiera con una cadena MD5, ésto para poder pasar a través de
VB.Net el usuario en formato MD5 a un
Webbrowsers, ésto con la finalidad de poder recuperar cierta información de Ms SQL Server y poder visualizarla en formato Web.
Las razones por las cuales ésta aplicación funcionará así carecen de relevancia en ésta publicación.
yo tengo entonces como ejemplo que el usuario
Wlinker mantiene la cadena MD5
correspondiente:
5c1c3546a119bff751b99a71fc741f09
y en mi base de datos yo tengo entre otros campos:
+ id
+ username
y no almaceno en ningun momento el valor MD5, entonces para poder obtener el username correspondiente a la cadena MD5 generé (con apoyo de compañeros de trabajo) la siguiente consulta.
Código SQL:
Ver originalSELECT DISTINCT username FROM [basedatos].[dbo].[tabla_datos]
WHERE SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5',CAST(username AS VARCHAR(100)) )),3,32 ) = 'CADENA-MD5'
con esto se es capaz de recorrer la base de datos y hacer las comparaciones ahí mismo, con lo cuál me ahorro el proceso de recorrer toda la base de datos desde mi frontend e ir usuario por usuario hasta encontrar el valor indicado.
Publico ésto porque no encontré en ningun lugar ésto que logramos generar y espero que sea útil para alguien más en algun momento, las adaptaciones, mejoras, etc. son asunto de cada quién, solo cumplo con compartir y estoy abierto a comentarios, gracias.
con lo cual al hacer la consulta:
Código SQL:
Ver originalSELECT DISTINCT username FROM [basedatos].[dbo].[tabla_datos]
WHERE SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5',CAST(username AS VARCHAR(100)) )),3,32 ) = '5c1c3546a119bff751b99a71fc741f09'
recuperaré el username
Wlinker