您的位置:首页 > 其它

Enterprise Library Step By Step系列(十三):加密应用程序块——入门篇

2008-01-18 17:35 543 查看


一.概述:


Enterprise Library Cryptography Application Block简化了开发人员在其应用程序中集成加密功能的方式。应用程序可以使用应用程序块来执行各种任务,例如加密信息、从数据创建哈希,以及比较哈希值来检验数据是否被更改。

加密应用程序块具有以下功能:

它可以减少编写样本代码来执行标准任务的需要,从而提供了可用于解决常见应用程序加密问题的实现。

它有助于维护应用程序和整个企业中一致的加密做法。

利用涵盖提供的各种功能区域且一致的体系结构模型,从而使开发人员在学习过程中少走一些弯路。

它提供了可用于解决常见应用程序加密问题的实现。

它是可扩展的,并支持加密提供程序的其他实现。

开发人员经常编写一些需要加密和哈希功能的应用程序,以满足其组织的安全性要求。通常需要加密由应用程序创建和维护的数据以及配置信息。另外,还需要对用于访问应用程序功能或数据的密码进行哈希运算。

加密应用程序块通过将应用程序代码从特定的加密提供程序中抽象出来,从而简化了开发人员的工作。您可以通过更改配置来更改基础提供程序,而无需更改基础应用程序代码。它还可以封装与加密有关的常见难题(例如,加密和保留加密密钥)的最佳做法实现。

二.使用步骤向导

1.使用配置工具为Cryptography Application Block创建配置

copy "$(ProjectDir)\*.config" "$(TargetDir)"
5.编写代码

加密数据

1byte[] valueToEncrypt = System.Text.Encoding.Unicode.GetBytes(this.inputForm.Input);

3

4this.encryptedContents = Cryptographer.EncryptSymmetric(symmProvider, valueToEncrypt);

6

7Array.Clear(valueToEncrypt, 0, valueToEncrypt.Length);

9

10string encryptedText = Convert.ToBase64String(this.encryptedContents);
解密数据

1byte[] decryptedContents = Cryptographer.DecryptSymmetric(symmProvider,this.encryptedContents);

3

4string readableString = System.Text.Encoding.Unicode.GetString(decryptedContents);

6

7Array.Clear(decryptedContents, 0, decryptedContents.Length);

获取一个Hash值

1 private byte[] GetHash(string plainText)

7 private bool CompareHash(string plainText, byte[] existingHashValue)

8 {

9 byte[] valueToHash = System.Text.Encoding.UTF8.GetBytes(plainText);

10

11 bool matched = Cryptographer.CompareHash(hashProvider, valueToHash, existingHashValue);

12

13 /**//// 从内存中清空

14 Array.Clear(valueToHash, 0, valueToHash.Length);

15

16 return matched;

17 }

总结

Cryptography Application Block应用程序块相对来说使用比较简单,有关加密和安全的更多知识,请大家多参考密码学方面的文章,这里就不详细介绍了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐