Enterprise Library 加密应用程序块关键场景

此主题描述了开发人员在应用程序中提供加密功能时必须解决的绝大多数常规情况。每个场景都解释了任务,描述了任务可能发生的真实世界的情况,并且包括了示范如何使用加密应用程序块来完成任务的代码。场景如下:
  • 加密秘密。此场景示范了怎样使用对称算法提供程序加密秘密。
  • 解密秘密。此场景示范了怎样使用对称算法提供程序解密已加密的秘密。
  • 获得文本的哈希。此场景示范了怎样从数据中生成哈希值。
  • 验证哈希值是否与某些文本匹配。此场景示范了怎样比较纯文本数据和以前从数据中生成的哈希值,以验证从生成初始的哈希以来数据没有被改变过。

用对称提供程序加密数据

一个常规加密任务是使用对称提供程序加密数据。当应用程序有要保证机密的数据时,也许要进行此任务。

典型目标

在此场景中,要使用对称提供程序来加密提供的数据。对称提供程序的输出是加密的数据。

解决方案

调用 Cryptographer 类的静态 EncryptSymmetric 访求的适当重载(字符串或字节数组),指定要使用的对称提供程序的名称和要加密的数据。

快速入门

对于如何使用 EncryptSymmetric 方法加密数据的扩展示例,请参见漫游:加密秘密。

使用 EncryptSymmetric

下列代码展示了如何使用 EncryptSymmetric 方法来加密字符串形式的数据。此重载返回的是 base64 编码的字符串。

C#
string encryptedContentsBase64 = Cryptographer.EncryptSymmetric("symmProvider", "password"); 
Visual Basic
Dim encryptedContentsBase64 As String
encryptedContentsBase64 = Cryptographer.EncryptSymmetric("symmProvider", "password")

下列代码展示了如何使用 EncryptSymmetric 方法加密字节数组中的数据。此重载返回一个字节数组。

C#
byte[] valueToEncrypt = Encoding.Unicode.GetBytes("password");
byte[] encryptedContents = Cryptographer.EncryptSymmetric("symmProvider", valueToEncrypt);

// Clear the byte array memory that holds the password.
Array.Clear(valueToEncrypt, 0, valueToEncrypt.Length);
Visual Basic
Dim valueToEncrypt = Encoding.Unicode.GetBytes("password")
Dim encryptedContents As Byte() = Cryptographer.EncryptSymmetric("symmProvider", valueToEncrypt)

' Clear the byte array memory that holds the password.
Array.Clear(valueToEncrypt, 0, valueToEncrypt.Length)

使用提示

加密数据时考虑下面几点:
  • 确定在 Enterprise Library 配置控制台中配置了合适的对称提供程序。
  • 敏感数据尽可能快的从内存中清除。留下未加密的数据在内存中会使数据面临安全威胁。要注意的是,内存中的数据也有可能到硬盘上,因为操作系统会将数据写入一个交换文件中。如果计算机崩溃,操作系统会将内存中的内容保存到磁盘中。

转载于:https://www.cnblogs.com/doriandeng/archive/2007/11/07/952750.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值