Как применить 32-битную строку.net GetHashCode()
Возможный дубликат:
GetHashCode() дает разные результаты на разных серверах?
Я использовал строку GetHashCode() в моей программе.net 4.0 и сохранил значение в БД. Проблема в том, что когда я запускаю программу с другой настройкой, 64 против 32, .net использует другой алгоритм хеширования для хеширования строк. Так что я не получу матч все время. Так кто-нибудь знает, как я могу просто вычислить 32-битное хеширование строки даже в 64-битной сборке.
1 ответ
Простой ответ - не делать этого. Значения указываются как зависящие от платформы, и точное поведение не определяется за пределами выполнения контракта GetHashCode. Не гарантируется, что он останется неизменным в новых выпусках.NET, новых архитектурах и даже в исправлениях. Используйте фактический алгоритм хеширования, поведение которого определено, например, SHA-1, CRC или что-то еще (в зависимости от фактических требований).