簡體   English   中英

GetHashCode 方法 asp.net 核心中相同字符串返回不同值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM