Enterprise Library 4.1 学习笔记( 三)加密模块
1.加密模块首先要添加引用
通过Enterprise Library Configuration工具打开app.config文件,如图
创建Cryptography Application Block节。系统会自动添加两个子节。Hash Providers和Symmetric Providers.
1)前一个是Hash算法加密,后者是对称算法加密。
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图09.png)
2)删除Hash Providers节下SHA1Managed节,添加新节
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图01.png)
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图02.png)
选择偏好的加密方法。点击确定。
3)定义对称加密算法,操作类似hash加密算法
选择加密程序提供者
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图03.png)
选择加密算法
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图04.png)
创建密匙
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图05.png)
生成密匙
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图06.png)
指定密匙文件
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图07.png)
指定加密模式(机器模式/用户模式)。完成加密
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图08.png)
文件配置结束
3.代码
1)首先指定加密配置信息
symmetricName对应配置文件中加密模块子节symmetric providers中对称算法的名称
2)实现对称算法验证
CodeCryptographer.EncryptSymmetric方法需要两个参数(加密算法名称和待加密字符串)
Cryptographer.decryptSymmetric方法需要两个参数(加密算法名称和待解密字符串)
输出
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图10.png)
3)实现hash算法验证
CodeCryptographer.CreateHash()方法需要两个参数(加密算法名称和待加密字符串转换的字符数组)
Cryptographer.CompareHash()方法需要三个参数(加密算法名称和待比较字符串转换为字符数组以及待加密字符串转换的字符数组)
结果
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图11.png)
using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;
2.创建配置文件通过Enterprise Library Configuration工具打开app.config文件,如图
创建Cryptography Application Block节。系统会自动添加两个子节。Hash Providers和Symmetric Providers.
1)前一个是Hash算法加密,后者是对称算法加密。
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图09.png)
2)删除Hash Providers节下SHA1Managed节,添加新节
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图01.png)
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图02.png)
选择偏好的加密方法。点击确定。
3)定义对称加密算法,操作类似hash加密算法
选择加密程序提供者
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图03.png)
选择加密算法
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图04.png)
创建密匙
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图05.png)
生成密匙
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图06.png)
指定密匙文件
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图07.png)
指定加密模式(机器模式/用户模式)。完成加密
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图08.png)
文件配置结束
3.代码
1)首先指定加密配置信息
static string hashName = "SHA1Managed";
static string symmetricName = "TripleDESCryptoServiceProvider";
其中hashName对应配置文件中加密模块子节hash providers 中hash算法名称static string symmetricName = "TripleDESCryptoServiceProvider";
symmetricName对应配置文件中加密模块子节symmetric providers中对称算法的名称
2)实现对称算法验证
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Cryptographer.decryptSymmetric方法需要两个参数(加密算法名称和待解密字符串)
输出
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图10.png)
3)实现hash算法验证
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Cryptographer.CompareHash()方法需要三个参数(加密算法名称和待比较字符串转换为字符数组以及待加密字符串转换的字符数组)
结果
![](https://images.cnblogs.com/cnblogs_com/thornfield_he/截图11.png)