Usuario
Ayuda con MD5 en winx32 y winx64

Debate general
-
Hola a todos, quien me hecha una mano con lo siguiente, tengo un sistema que genera un md5 con el siguiente código:
Public Function Encriptar_MD5(ByVal p_strValor As String) As String Dim md As MD5 = MD5CryptoServiceProvider.Create Dim hash() As Byte Dim strMD5 As String = "" Try Dim enc As ASCIIEncoding = New ASCIIEncoding Dim buffer() As Byte = enc.GetBytes(p_strValor) hash = md.ComputeHash(buffer) For Each b As Byte In hash strMD5 &= b.ToString("X2") Next Catch ex As Exception strMD5 = "00001" End Try Return strMD5 End Function
Todo funciona correctamente, el dilema es el siguiente, actualmente funciona en un WS2003x32 y genera un MD5 y todo perfecto, pero ahora que la solcuión lo puse en un WS2012R2x64 me genera otro MD5, esto quiere decir que la misma cadena de entrada genera diferentes salidas dependiente del sistema operativo (bueno eso es la unica idea que tengo), entonces como puedo hacer para que el algoritmo me genera el mismo MD5 que me genera en el WS2003x32 pero corriendo en un WS2012R2x64?
Gracias de antemano, y saludos cordiales a todos.
Roy Sillerico
Todas las respuestas
-
Es rarísimo que te salgan valores distintos. Tal como lo tienes, debería salirte el mismo valor en x86 y x64. ¿Has probado a seguir la ejecución con el debugger (o a instrumentar el código) para ver dónde se produce la discrepancia? Es decir, verificar en los dos sistemas si a la subrutina le llega el mismo string, o si el Asciiencoding genera diferentes bytes, o si el ComputeHash genera un distinto binario, o si la concatenación en hexadecimal produce resultados diferentes. A ver si aislando el problema sobre una operación concreta nos da más pistas para seguir investigando o para buscar una alternativa.
Editado: Una idea que se me ocurre: ¿No será que en el string llega algún carácter que no sea ASCII (es decir, con un código mayor que 127)? Si fuera así, los resultados del AsciiEncoding podrían ser distintos.
- Editado Alberto PoblacionMVP jueves, 8 de septiembre de 2016 6:30
-
-