c# - 为什么像 SHA1Managed、SHA256Managed 这样的类对我的 Intellisense 隐藏?
问题描述
当我转到System.Security.Cryptography
命名空间时,我只能在那里看到SHA1
,SHA256
等HMACSHA1
类。
但实际上,有一个SHA1Managed
类,以及SHA256Managed
,我没有看到?当我手动写出来时 - 一切都按预期工作。
这是故意隐藏的吗?SHA1.Create()
简单地实例化它们的托管版本与调用它们的工厂方法(或)有什么区别SHA256.Create()
?它们是一样的吗?
解决方案
无法为奇怪的 IntelliSense 问题提供答案,但请查看SHA1和SHA1Managed实现。SHA1 只是一个基类。在这种情况下,实现完全相同。它与FIPS 认证有关。托管版本不使用本机加密库,因此未经 FIPS 认证。有一个FipsAlgorithmPolicy
强制 FIPS 合规性的客户注册表设置 ( )。如果打开注册表设置,您将无法使用托管类。
在您的情况下,如果您实例化SHA1Managed
或使用SHA1.Create()
. 但是,如果您需要满足 FIPS 认证,它确实会有所作为。
推荐阅读
- haskell - 'Monad (Writer String)' 的非法实例声明
- java - 我可以使用为两个活动观察到的视图模型吗?
- c# - 如何在c#中拆分后仅从数组中删除最后一个空元素
- angularjs - 纱线过时显示显示所有 bower_components
- vue.js - 为什么 $nextTick 中的期望永远不会失败?
- php - PHP & SQL:显示数据时 fetch_assoc / while 循环进入无限期
- java - 如何获取大于arraylist中当前元素的数字元素的计数
- node.js - 如何在节点 js 中从 mongodb 插入和检索视频
- assembly - linux x86 汇编器到 llvm 汇编器
- node.js - 检查变量是否未定义