Duplicar posible:
How do I create a HashCode in .net (c#) for a string that is safe to store in a database?¿Es portable la función hash de cadenas .NET?
utilizo C# 4.0 y obtiene el hash cadena invocando:
"my string".GetHashCode()
Código generado por esta llamada se almacena en la base de datos para el futuro utilizar. Este código hash se usa para buscar algún subconjunto de cadenas y luego para compararlo por igual.
Las preguntas son:
- ¿Es un cálculo de comprobación aleatoria estandarizada? ¿Puedo suponer que es posible calcular el mismo hash en diferentes entornos como C# en .Net 3.0 o futuras ediciones .Net?
- ¿Es posible calcular la misma función hash en usted escribiendo en Java, PL/SQL, Ruby, etc.?
- ¿Puedo suponer que el hash generado hoy será el mismo mañana en en el mismo entorno? Por ejemplo, cuando apago mi computadora y vuelvo a ejecutar el programa, o cambio la configuración regional, o algunas otras configuraciones?
- ¿Cuáles son los límites de la portabilidad?
- Sé que puedo hacerlo usted mismo, pero ¿se proporciona algún tipo de portabilidad?
Las respuestas a sus preguntas son NO, NO, NO, NO, NO, no hay ninguna "portabilidad" en absoluto, y no hay ninguna "portabilidad" en absoluto. ** Bajo ninguna circunstancia debe hacer lo que está describiendo. ** –