Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ejemplo: Comparar columna usuario y convertirla a MD5 en tiempo de ejecucion

Estas en el tema de Ejemplo: Comparar columna usuario y convertirla a MD5 en tiempo de ejecucion en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/08/2012, 16:37
 
Fecha de Ingreso: agosto-2012
Mensajes: 39
Antigüedad: 11 años, 8 meses
Puntos: 5
Ejemplo: Comparar columna usuario y convertirla a MD5 en tiempo de ejecucion

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 original
  1. SELECT DISTINCT username FROM [basedatos].[dbo].[tabla_datos]
  2. 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
  1. SELECT DISTINCT username FROM [basedatos].[dbo].[tabla_datos]
  2. WHERE SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5',CAST(username AS VARCHAR(100))  )),3,32 ) = '5c1c3546a119bff751b99a71fc741f09'

recuperaré el username

Wlinker
  #2 (permalink)  
Antiguo 21/08/2012, 14:47
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Ejemplo: Comparar columna usuario y convertirla a MD5 en tiempo de ejecuci

Es válida tu solución pero también es algo normal guardar el campo MD5 desde un inicio

Aclaro que todo depende del requerimiento

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net

Etiquetas: mssql, php, webbrowser, vbnet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.