c# - .NET 核心中的 MD5 哈希是确定性的吗?
问题描述
我有一个类似于本文中描述的用例: Calculate MD5 checksum for a file
由于这篇文章显然是指 .NET Framework 并且我使用 .NET core,所以我想了解更多关于 .NET core 中的哈希。在对我进行了一些研究之后,我在 Microsoft 的System.String 文档中发现了一个声明。他们对GetHashCode()函数有以下看法:
哈希码本身不能保证是稳定的。对于单个 .NET 版本,相同字符串的哈希码在 .NET 实现、.NET 版本以及 .NET 平台(例如 32 位和 64 位)之间可能有所不同。在某些情况下,它们甚至可能因应用程序域而异。这意味着同一程序的两次后续运行可能会返回不同的哈希码。
由于我对哈希不是很熟悉,而且这种行为只发生在 .NET 核心中,所以上面的陈述让我很担心。可以使用 MD5 哈希在数据库中存储校验和吗?这个校验和在每个平台上的计算方式是否相同?还是像 GetHashCode() 一样,结果在不同平台甚至每个程序执行时都可能不同?
解决方案
推荐阅读
- react-native - 反应原生深层链接不需要的组件渲染,即使有清理功能
- r - 使用 dplyr 从 R 数据框中的最后一列最后一行更改值
- xml - 是否可以使用 XSLT 仅获取层次结构的特定分支?
- function - Access查询和函数中的动态字段名,可以这样吗?
- powershell - 使用 Powershell 或 Cmd 获取非 VPN Ip
- r - 我遇到了这个错误消息 - fetch(key) 中的错误:无法分配大小为 3.2 Gb 的内存块
- ios - 通知用户在颤动中终止应用程序
- sql - 如何进行 PostgreSQL 条件内连接更新
- python - 使用 django 创建通知
- asp.net-core - 为什么要为两种类型的客户端应用程序使用令牌/OIDC 服务器?