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 original
SELECT 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 original
SELECT 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