[英]GetHashCode method Returns different values for same string in asp.net core
我在應用程序中編寫了以下代碼。
var salt = "0115ee62e6e5e8ea68db9e2d7e72cec85e810ad9566212ffc2c4b76a17ca0b00";
var hashCode = StringComparer.OrdinalIgnoreCase.GetHashCode(salt ?? string.Empty);
它在“asp.net 核心”和“標准”框架中有不同的行為。
Framework 4.7:如果我將在 .net 標准框架中創建的網站/控制台應用程序中使用此代碼,它總是會給我相同的結果。 hashcode 變量的值始終為“1066337973”。
Asp.net 核心:如果我將在 asp.net 核心網站中使用此代碼,那么每次我停止應用程序並重新啟動時,哈希碼變量都有不同的值。
由於這個問題,我的邏輯在 asp.net 核心應用程序中失敗了。
如何解決這個問題?
根據@Pavel Anikhouski
GetHashCode
實現在 .NET Core 中發生了變化,這是預期的行為,請查看這篇文章為什么每次在 .NET Core 中運行我的程序時 string.GetHashCode() 都不同?
String.GetHashCode
Hash 相同字符串的代碼在 .NET 實現、.NET 版本和 .NET 平台(例如 32 位和 64 位)中對於 .NET 的單個版本可能不同。在某些情況下,它們甚至可能因應用程序而異領域。 這意味着同一程序的兩次后續運行可能會返回不同的 hash 代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.