.NET 6中如何正确计算SHA512哈希 解决SYSLIB0021过时警告
.NET 6 修正 SHA512Managed 过时警告的方案
核心原因
SYSLIB0021 警告触发原因是SHA512Managed这类派生加密实现类已在 .NET 6 中被标记为过时,官方推荐直接调用加密算法基类的Create静态方法获取实例,框架会自动适配当前运行平台的最优实现。
修正代码(兼容所有.NET 6+场景)
需要先引入以下命名空间:
using System.Text; using System.Security.Cryptography;
替换原有实例化逻辑即可:
var data = Encoding.UTF8.GetBytes("key"); byte[] hash; using (SHA512 shaM = SHA512.Create()) { hash = shaM.ComputeHash(data); }
更简洁的推荐写法
.NET 5 及以上版本还可以直接使用基类的静态HashData方法,无需手动管理对象释放:
var data = Encoding.UTF8.GetBytes("key"); byte[] hash = SHA512.HashData(data);
以上两种写法都完全适配 ASP.NET MVC 控制器的调用场景,修改后即可消除 SYSLIB0021 警告。
内容的提问来源于stack exchange,提问作者Andrus
相关产品推荐
相关产品推荐

