.NET Framework加密模型在我们的代码编写中值得开发人员重视。因为这宗模型的实现可以帮助我们提高程序的安全性。.NET Framework 提供许多标准加密算法的实现。这些算法易于使用并具有最安全的可能默认属性。此外,对象继承、流设计和配置的 .NET Framework 加密模型具有高度的可扩展性。#t#
.NET Framework加密模型之对象继承
.NET Framework 安全系统实现可扩展模式的派生类继承。层次结构如下所示:
算法类型类,如 SymmetricAlgorithm 或 HashAlgorithm。该级别为抽象。
从算法类型类继承的算法类,如 RC2 或 SHA1。该级别为抽象。
从算法类继承的算法类的实现,如 RC2CryptoServiceProvider 或 SHA1Managed。该级别是完全实现的。
使用这种模式的派生类,很容易添加新算法或现有算法的新实现。例如,若要创建新的公钥算法,应从 AsymmetricAlgorithm 类继承。若要创建特定算法的新实现,应创建该算法的非抽象派生类。
.NET Framework加密模型之流设计
公共语言运行库使用面向流的设计实现对称算法和哈希算法。该设计的核心是 CryptoStream 类,它派生自 Stream 类。基于流的加密对象全都支持用于处理对象的数据传输部分的单个标准接口 (CryptoStream)。由于所有对象都在标准接口上生成,所以可以将多个对象(如一个哈希对象后跟一个加密对象)链接在一起,并且可以对数据执行多个操作而不需要为数据提供任何中间存储。使用流模型时还可以用更小的对象生成对象。例如,可以将加密算法和哈希算法的组合视为单个流对象(即使该对象可能是从一组流对象生成的)。
.NET Framework加密模型之加密配置
使用加密配置可以将算法的特定实现解析为算法名称,从而使 .NET Framework 加密类具有可扩展性。您可以添加自己的硬件或软件算法实现,并将该实现映射到您选择的算法名称上。如果未在配置文件中指定算法,则使用默认设置。有关加密配置的更多信息,请参见配置加密类。
.NET Framework加密模型之加密任务
描述如何使用基类库执行特定的加密任务。
System.Security.Cryptography 命名空间包含一些类,通过这些类您可以执行对称和不对称加密,创建哈希值和提供随机数生成。成功的加密是将这些任务组合在一起的结果。本节描述您可以执行的用于创建.NET Framework加密模型方案的密钥加密任务。