Me faltó esta semana un error que ocurrió cuando mi código se alojó en un proceso x64. Estoy usando un valor hash para la búsqueda y estoy almacenando ese valor hash en una base de datos. El valor hash que se ha generado en el pasado era un hash x86 y ahora que se están generando hashes x64, recibo errores porque los valores de búsqueda ya no coinciden.¿Se puede generar un valor hash x86 cuando se ejecuta en modo x64?
Soy muy escéptico de esto, pero pensé en preguntar de todos modos. ¿Hay alguna manera de generar un valor hash x86 si mi código se ejecuta en un proceso x64?
Como referencia, me estoy ejecutando en .NET 4.0 utilizando C#.
Editar:
Aquí está el problema que he estado corriendo en: String.GetHashCode() returns different values
Puede duplicar el problema mediante la creación de una aplicación de consola con el siguiente código:
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode()
Ejecutar la aplicación con la plataforma x86, luego ejecútalo con la plataforma x64.
Solo quiero obtener valores consistentes en todas las plataformas. Sin embargo, puedo crear una lista precompilada de hashes para que pueda fallar en el caso de que lo necesite. Solo quería saber si había una forma de obtener valores consistentes de GetHashCode(). No lo creo, pero si es posible, sería la solución más fácil en mi caso.
¿Qué son los hashes x86 y x64? Los hash generalmente se crean a través de un algoritmo que es independiente de la plataforma y el procesador. – Joe
¿Cómo está generando el hash? ¿Podemos ver el código? – kemiller2002
¿Podría decirnos por qué necesita valores uniformes en todos los sistemas? – PeteT