Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2009, 20:11
Avatar de xdrtas
xdrtas
 
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 16 años, 7 meses
Puntos: 13
Respuesta: Ayuda - SHA1 y MD5 codificación de caracteres incorrecto

Hola de nuevo a todos, ya resolví el problema, les dejo la solución por si a alguno de ustedes les llega a pasar lo mismo que a mi.

Al utilizar la función HASHBYTES con nvarchar el resultado se transforma a caracteres orientales porque el valor devuelto por HASHBYTES comienza con "0x".(Sin las comillas).

Asi que guardé el valor resultante de la función HASHBYTES en un varbinary para probar y luego lo transformé con la función CONVERT a nvarchar y listo.

Les dejo el ejemplo, (aunque aqui ya no uso varbinary, lo guardo directamente en una variable nvarchar transformando primero la cadena):

DECLARE @hash nvarchar(64)
SET @hash = CONVERT(nvarchar(64),HASHBYTES('SHA1','cualquierte xto'),2)
SELECT @hash as Resultado

Resultado: 1216BC84EACC1296FC3C81791807227A773F0CD1

El "2" en la función CONVERT lo que hace es quitar los dos primeros caracteres y el resto lo guarda como caracteres "normales".
Espero que les ayude!