我对 C# 比较陌生,所以请耐心等待。我了解托管代码和非托管代码之间的基本区别。但我仍然有点困惑何时使用某些方法。
例如,某些类名称结尾中的“托管”一词意味着什么。这是否意味着他们受到管理,而其他所有人员则不受管理?例如,两者之间有什么区别Aes and Aes管理 or SHA512 and SHA512托管?我知道您不能从托管类派生,但这就是我所知道的。
另外,何时应该使用“托管”类,例如何时选择Aes over Aes管理?
(我已经在维基百科上阅读了托管代码的基础知识(here http://en.wikipedia.org/wiki/Managed_code)并且还找到了关于托管代码基础知识的很好的解释(here http://www.grimes.demon.co.uk/dotnet/man_unman.htm)
感谢您的时间和答复。
.NET 中有两种加密包装器,即名称以 Managed 结尾的类和名称以 CryptoServiceProvider 结尾的类。仅 CryptoServiceProvider 版本经过 FIPS 140-1 认证。它们是 Microsoft 提交给美国商务部的本机代码的包装器,验证算法是否满足这个文件 http://csrc.nist.gov/publications/fips/fips140-1/fips1401.pdf。它们还要求操作系统安装这些本机库。每当您与美国政府机构或任何规定您的代码必须经过 FIPS 认证的实体签订合同时,FIPS 合规性都是一件大事。
算法的托管版本是用托管代码编写的,不依赖于本机加密 API 库。他们是notFIPS 认证。您的客户可以使用一个注册表设置来强制执行 FIPS 合规性。当它打开时,托管类将在其构造函数中抛出异常。有关于此的更多信息,请参阅此内容博客文章 http://blogs.msdn.com/b/shawnfa/archive/2005/05/16/417975.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)