Cryptography Application Block

    技术2022-05-19  22

    1. 功能简介

    2. 如何配置和使用?

    3. 设计实现及如何拓展?

    4. 代码下载

     


    1. 功能简介

     

    Cryptography Application Block 主要实现了两个算法:Encryption algorithms和Hashing algorithms,其中Encryption algorithms就是我们通常意义上的加密算法,Hashing算法提供的是这样一种场景:用户提供一个带价密的文本,通过hash算法生成一个hash值,然后检查该hash值是否出自某个字符串(Checking whether a hash matches some text)。同样该block提供了自定义provider的功能。

     

     


    2. 如何进行配置和简单使用?

     

    2.1 新建一个c# console application,添加配置文件App.config,添加程序集引用如下图:

     

     

    打开EntLibConfig.exe,打开上面的app.config。添加加密的application block,开始配置:

     

    添加一个hash provider。

     

    添加加密算法。

     

     

     

     

    注意下面选择Machine Mode(The LocalMachine value means that that any code running on the machine has access to the protected key)。

     

     

    配置加密程序块的默认hash和加密程序的provider:

     

     

     

    配置完成,下面是一个简单的使用示例:

     

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography; using Microsoft.Practices; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; namespace CryptographyBlockTest { class Program { static void Main(string[] args) { CryptographyManager crypto = EnterpriseLibraryContainer.Current.GetInstance<CryptographyManager>(); string encrypted = crypto.EncryptSymmetric("CryptoProvider", "test"); Console.WriteLine(encrypted); string decrypted = crypto.DecryptSymmetric("CryptoProvider", encrypted); Console.WriteLine(decrypted); HashTest(); Console.ReadKey(); } public static void HashTest() { CryptographyManager crypto = EnterpriseLibraryContainer.Current.GetInstance<CryptographyManager>(); byte[] valueToHash = (new UnicodeEncoding()).GetBytes("password"); byte[] generatedHash = crypto.CreateHash("MD5Cng", valueToHash); // generatedHash contains a hash value for a previously hashed string. byte[] stringToCompare = (new UnicodeEncoding()).GetBytes("password"); bool comparisonSucceeded = crypto.CompareHash("MD5Cng", stringToCompare, generatedHash); Console.WriteLine(comparisonSucceeded); // true } } }


     

    3. 设计实现及如何拓展?

     

     


    4. 代码下载

     

    下载

     


    本博客均是本人在学习过程中的总结,其中难免存在不足之处,欢迎指正。


    最新回复(0)