You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中SHA3在Windows 11平台不支持的解决方法咨询

.NET 8 SHA3算法在Windows 11 x64平台抛出PlatformNotSupportedException的解决方法(无需外部库)

问题描述

在Windows 11 x64(AMD Ryzen 3 5300U)平台上创建.NET 8新项目,试用SHA3/Shake算法时,调用任何相关类都会抛出PlatformNotSupportedException,提示“该操作在此平台上不受支持”。希望在不借助外部库的前提下解决此问题。

代码示例

using System.Security.Cryptography;

var hash = SHA3_256.HashData("Example data to hash"u8);

异常信息

Unhandled exception. System.PlatformNotSupportedException: Operation is not supported on this platform.
   at System.Security.Cryptography.SHA3_256.TryHashData(ReadOnlySpan`1 source, Span`1 destination, Int32& bytesWritten)
   at System.Security.Cryptography.SHA3_256.HashData(ReadOnlySpan`1 source, Span`1 destination)
   at System.Security.Cryptography.SHA3_256.HashData(ReadOnlySpan`1 source)
   at Program.<Main>$(String[] args) in C:\Users\admin\source\repos\Net8Test\Net8Test\Program.cs:line 3

解决方法

原因分析

.NET 8的SHA3算法默认依赖CPU的SHA-NI扩展指令集,而AMD Ryzen 3 5300U属于Zen 2架构,该架构不支持SHA-NI指令集,这是抛出异常的核心原因。

无需外部库的解决方案

通过启用.NET的纯软件实现 fallback 即可解决,具体步骤:

  1. 打开项目的.csproj文件,添加以下配置项,强制使用软件实现的SHA3算法:
<PropertyGroup>
  <UseSha3SoftwareFallBack>true</UseSha3SoftwareFallBack>
</PropertyGroup>
  1. 保存配置后重新编译运行项目,此时SHA3/Shake算法会自动切换到纯软件实现,不再依赖硬件指令集,可正常执行哈希计算。

验证说明

添加该配置后无需修改原有代码,原SHA3_256.HashData等调用会直接使用软件实现完成计算,不会再抛出平台不支持的异常。


内容的提问来源于stack exchange,提问作者Bird2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:09:58