作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找符合 FIPS 的 C# 中的 SHA256 实现。事实证明 SHA1CryptoServiceProvider 有效。但是为什么 SHA256CryptoServiceProvider 会跳闸
{"This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms."}
错误?看起来它应该可以正常工作。
var sha = System.Security.Cryptography.SHA256CryptoServiceProvider.Create(); // not FIPS
在本例中,我使用的是 .NET 4.5,但同样的事情发生在 3.5 和 4.0 中。我认为 SHA256CryptoServiceProvider 是符合 FIPS 的 SHA256Managed 替代方案。 SHA256Cng 抛出相同的错误。
更新。我想我需要制作一个“新的 SHA256CryptoServiceProvider”而不是使用 Create()
最佳答案
正如原始发布者在更新中建议的那样,解决方案是实际创建 SHA256CryptoServiceProvider(或 512)的新实例。调用 Create 将不起作用:
var csp = new SHA512CryptoServiceProvider();
byte[] hashedBytes = csp.ComputeHash(......);
String hashedText = Convert.ToBase64String(hashedBytes);
关于c# - SHA256CryptoServiceProvider 不符合 FIPS 标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21326598/
所以我想知道哈希算法的各种实现之间是否存在重大差异,以SHA系列算法为例。它们每个都有 3 个实现,1 个在托管代码中,2 个围绕不同的 native 加密 API 进行包装,但是使用它们之间有什么主
我是一名优秀的程序员,十分优秀!