Microsoft Enterprise Library 加密应用程序块简化了开发人员如何将加密功能添加到它们的应用程序中去。应用程序可以在多种任务中使用应用程序块,例如加密信息、创建数据的哈希、以及比较哈希值以验证数据是否已被修改。
加密应用程序块有下列特性:
减少了处理标准任务时编写重复代码的需要,提供了可以用来解决常规应用程序加密问题的实现。
有助于维护一致的加密实践,无论是在应用程序中还是在企业间。
使用一致的架构模型跨越提供的不同的功能范围来平滑开发人员的学习曲线。
提供了可用于解决常规加密问题的实现。
可扩展,支持其他加密提供程序的实现。
常规场景
开发人员频率的编写需要加密和哈希能力的应用程序以满足它们组织的安全需求。由应用程序创建并维护的数据,以及配置信息,通常需要加密。另外,用于访问应用程序功能或数据的密码需要被哈希。
加密应用程序块从特定加密提供程序中抽象出应用程序代码以简化开发人员的工作,可以通过修改配置来改变底层提供程序,而不需要修改底层的应用程序代码。
加密应用程序块只支持对称算法。对称算法使用同样的密钥来加密和解密。应用程序块不支持非对称(如公钥)加密,非对称加密使用一个密钥来加密消息,另一个密钥来解密消息。
示例代码
下列代码展示了如何加密和解密数据,还展示了如何使用接受一个字符串的重载方法。
例 8.1. C#
string encryptedContentsBase64 = Cryptographer.EncryptSymmetric(symmProvider, SensitiveData);
// Decrypt the base64 encoded string
string readableString;
readableString = Cryptographer.DecryptSymmetric(symmProvider, encryptedContentsBase64);
例 8.2. Visual Basic
Dim encryptedContentsBase64 As String
encryptedContentsBase64 = Cryptographer.EncryptSymmetric(symmProvider, SensitiveData)
Decrypt the base64 encoded string
Dim readableString As String
readableString = Cryptographer.DecryptSymmetric(symmProvider, encryptedContentsBase64)
读者要求
本指南的目标读者是软件架构师、软件开发人员和策略制定者。要从本指南中获得更多的好处,需要先理解下列技术:
Microsoft Visual Studio 2005 开发系统
Microsoft .NET Framework 2.0
系统需求
运行加密应用程序块的需求如下:
Microsoft Windows XP Professional, Windows Server 2003, 或 Windows Vista 操作系统
Microsoft .NET Framework 2.0 或 3.0
Microsoft Visual Studio 2005 开发系统(任何下列版本):
Microsoft Visual Studio 2005 标准版
Microsoft Visual Studio 2005 专业版
Microsoft Visual Studio 2005 软件开发人员团队版
Microsoft Visual Studio 2005 软件测试人员团队版
Microsoft Visual Studio 2005 软件架构师团队版
Microsoft Visual Studio 2005 团队套件
加密应用程序块的依赖
加密应用程序块依赖于包含在 Enterprise Library 中的其他代码:
内核库功能
Enterprise Library 内核提供了如度量和配置这样的服务,并且是所有 Enterprise Library 应用程序块的共享依赖。内核库功能包含在程序集 Microsoft.Practices.EnterpriseLibrary.Common.dll 中。
ObjectBuilder 子系统
ObjectBuilder 子系统执行所有重复且必要的对象实例的创建和销毁任务,且依然提供了高级的灵活性。Enterprise Library 将 ObjectBuilder 用于如注入配置到程序块的类中和连接度量类到应用程序块这样的任务中。ObjectBuilder 子系统包含在程序集 Microsoft.Practices.ObjectBuilder.dll 。
修改加密应用程序块的配置设置的推荐方法是使用 Enterprise Library 配置控制台。
加密应用程序块的文档
和本介绍一起的文档还包括下列主题:
用加密应用程序块开发应用程序。本主题描述了如何下载并安装应用程序块以使你可以在你的应用程序中使用它。它也描述了如何为常规操作配置应用程序块。关键场景子主题展示了如何使用应用程序块来完成最典型的加密任务。
加密应用程序块的设计。此主题解释了设计中的决定和这些决定背后相关的东西。
扩展和修改加密应用程序块。此主题解释了如何创建自己的提供程序来扩展应用程序块和修改源代码。
部署和操作。此主题解释了如何部署和更新应用程序块的程序集,还包含了与配置相关的信息。
快速入门。此主题解释了如何安装和配置快速入门应用程序,并包含了一系列的漫游,漫游示范了如何将常规的加密操作加入到应用程序中去。