• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

为什么在我的Intellisense隐藏SHA1Managed,SHA256Managed:类的类?

用户头像
it1352
帮助1

问题说明

当我进入 System.Security.Cryptography 命名空间时,我只能看到 SHA1 SHA256 HMACSHA1 其他类.

When I go to the System.Security.Cryptography namespace, I can only see SHA1, SHA256, HMACSHA1 etc classes there.

但是实际上,有一个 SHA1Managed 类和一个 SHA256Managed 类,我看不到吗?当我手动将其写出时,一切都会按预期进行.

But actually, there is a SHA1Managed class, as well as SHA256Managed, which I don't see? When I write it out manually - everything works as expected.

这是故意隐藏的吗?简单地实例化托管版本与调用其工厂方法( SHA1.Create() SHA256.Create())之间有什么区别?他们是同一回事吗?

Is this hidden intentionally? And what's the difference between simply instancing a managed version of those, versus for example calling their factory methods (SHA1.Create() or SHA256.Create())? Are they the same thing?

正确答案

#1

无法为您解决奇怪的IntelliSense问题,但请查看 FIPS认证.托管版本不使用本地加密库,因此未经FIPS认证.有一个用于客户的注册表设置( FipsAlgorithmPolicy )可以强制执行FIPS合规性.如果注册表设置已打开,则不能使用托管类.

Can't give you an answer for the weird IntelliSense problem but have a look at the SHA1 and SHA1Managed implementations. SHA1 is just a base class. The implementation is exactly the same in this case. It has something to do with the FIPS certification. Managed versions don't use the native crypto libraries and therefor are not FIPS certified. There is a registry setting (FipsAlgorithmPolicy) for customers which enforces FIPS compliance. If the registry setting is turned on you can't use the managed classes.

对于您来说,实例化 SHA1Managed 或使用 SHA1.Create()并没有什么不同.但是,如果您需要获得FIPS认证,那确实会有所不同.

In your case it does not make any difference if you instanciate SHA1Managed or use SHA1.Create(). But it does make a difference if you need to meet the FIPS certification.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfkjhk
系列文章
更多 icon
同类精品
更多 icon
继续加载