为什么在我的Intellisense中隐藏SHA1Managed,SHA256Managed之类的类? [英] Why are classes like SHA1Managed, SHA256Managed hidden from my Intellisense?

查看:60
本文介绍了为什么在我的Intellisense中隐藏SHA1Managed,SHA256Managed之类的类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我进入 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?

推荐答案

无法为您解决奇怪的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.

这篇关于为什么在我的Intellisense中隐藏SHA1Managed,SHA256Managed之类的类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆