当前位置:  开发笔记 > 编程语言 > 正文

CNG,CryptoServiceProvider和HashAlgorithm的托管实现

如何解决《CNG,CryptoServiceProvider和HashAlgorithm的托管实现》经验,为你挑选了1个好方法。

所以我想知道哈希算法的各种实现之间是否存在任何重大差异,例如以SHA系列算法为例.它们每个都有3个实现,1个托管代码和2个围绕不同本机加密API的包装器,但使用它们之间有什么主要区别吗?我可以想象包装器版本可以具有更高的性能,因为它在本机代码中执行,但是他们都需要执行完全相同的计算,从而提供相同的输出,即嘿是可互换的.它是否正确?

例如,SHA512CNG无法用于XP SP2(文档错误),但SHA512MANAGED可以.


@Maxim - 谢谢,但不是我要求的.我问的是,使用给定哈希算法的Managed/CryptoServiceProvider/CNG实现,除了可能的性能之外是否存在任何差异.使用.NET 3.5,您可以获得具有三种实现的所有哈希算法,因此

SHA512Managed SHA512CryptoServiceProvider SHA512Cng

后两者是本机API的包装器.例如,对于所有SHAxxx实现都是如此.



1> Eric Rosenbe..:

一个区别是本机版本(至少其中一些)是FIPS认证的(即,由美国政府批准),而受管理的版本则不是.如果您的代码恰好在已配置为"仅FIPS"的Windows计算机上运行,​​则尝试使用托管版本将失败.

大多数Windows机器都没有以这种方式配置,但如果您部署到政府或面向国防(或其他高度安全)的环境,您可能会遇到这种情况.

请参见http://blogs.msdn.com/shawnfa/archive/2005/05/16/417975.aspx.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有