¿Hay alguna manera de generar una cadena Hash MD5 de tipo varchar (32) sin usar fn_varbintohexstr?
SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', '[email protected]')), 3, 32)
Entonces podría usarse dentro de una vista con SCHEMABINDING
sql-server
tsql
sql-server-2008
Codificador de duelo
fuente
fuente
Respuestas:
fuente
Utilice HashBytes
Eso le dará 0xF53BD08920E5D25809DF2563EF9C52B6
-
Eso le dará F53BD08920E5D25809DF2563EF9C52B6
fuente
Solución:
fuente
Ninguna de las otras respuestas funcionó para mí. Tenga en cuenta que SQL Server dará resultados diferentes si pasa una cadena codificada en lugar de alimentarla desde una columna en su conjunto de resultados. A continuación se muestra la magia que funcionó para mí para dar una combinación perfecta entre SQL Server y MySql
fuente
LOWER()
solo es necesario si distingue entre mayúsculas y minúsculas.MD5
Hash idéntico en comparación con laMD5()
función dePostgresql
. Me preguntaba porMD5
qué se diferencian los hashs dePython
yPostgresql
. Gracias por la receta ..Para datos de hasta 8000 caracteres, utilice:
Demo
Para datos binarios (sin el límite de 8000 bytes) utilice:
Demo
fuente
prueba esto:
fuente
fuente
funciona para mi.
fuente
No dijiste explícitamente que querías que la cadena fuera hexadecimal; Si está abierto a la codificación de cadena base 64 más eficiente en cuanto al espacio, y está utilizando SQL Server 2016 o posterior, aquí hay una alternativa:
Esto produce:
fuente