Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)
企业库加密应用程序模块提供了2种方式让用户保护自己的数据:
- Hashingproviders: 离散加密法, 简单来说就是把你的信息保存到内存中后用一个离散值表示并返回给程序,这样在程序中只能看到离散值而不是明文,这样就起到简单的加密效果啦.
- Cryptographyproviders: 密钥加密法. 用对称加密方法对数据进行加密(尚未支持非对称加密).
使用企业库加密应用程序模块的优势:
- 减少了需要编写的模板代码,执行标准的任务,可以用它来解决常见的应用程序加密的问题.
- 有助于维持一个应用程序内和跨企业的数据传输加密.
- 允许管理员进行加密配置,包括使用组策略.
- 可扩展,支持用户自定义加密技术.
下面介绍如何使用Microsoft Enterprise Library 5.0中的加密应用程序模块.
1.下载安装好MicrosoftEnterprise Library 5.0,然后在运行EntLibConfig.exe
2. 选择Blocks菜单 ,单击 Add CryptographySettings .
下面分别样式如何创建Hash Providers 和 Symmetric CryptographyProviders 加密策略:
(A) Hash Providers 策略使用步骤:
(1) 点击HashProviders 区块右上角的加号按钮, Add Hash Providers, 然后点击Add Hash Algorithm Provider,在弹出的对话框中选择System.Core下的MD5Cng,
表示我们要用MD5的加密方法获取离散值.
(2) 点击 File 菜单,单击 Save,保存为一个App.config文件,可以先保存到桌面,之后要用到它. 用记事本打开App.config,可以看到如下内容.
(3) 要使用缓存应用程序模块, 需要导入相应的Dll文件,在此我们要导入的是Microsoft.Practices.EnterpriseLibrary.Caching.dll ,将App.config文件添加到项目中,
并添加usingMicrosoft.Practices.EnterpriseLibrary.Security.Cryptography引用:
添加引用:
(4) 测试:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;
namespace test
{
classProgram
{
staticvoid Main(string[]args)
{
//获取离散码
stringhash = Cryptographer.CreateHash("MD5Cng", "SensitiveData");
//打印显示
Console.WriteLine(hash);
Console.WriteLine("------------------------------------------------");
//验证
boolequal = Cryptographer.CompareHash("MD5Cng", "SensitiveData",hash);
//打印结果
if(equal)
{
Console.WriteLine("正确");
}
else
{
Console.WriteLine("错误");
}
}
}
}
运行结果:
(B) Symmetric CryptographyProviders策略实现步骤:
(1) 点击symmetriccryptography provider 区块右上角的加号按钮,然后点击 Add Symmetric Cryptography Providers, 在此我们能看到3个选项,下面介绍一下:
- Add Custom SymmetricCrypto Provider :顾名思义,用户自定义的加密策略,较麻烦,要自己写相应的加密类.
- Add DPAPI Symmetric Crypto Provider : 添加一个数据加密API生成的对称密钥进行加密.
- Add Sysmmetric Algorithm Provider : 较高级的对称加密方法,需要用户生成Key文件对数据进行保护.
在此我介绍的是第二种方法,因此请单击选择 Add DPAPI Symmetric Crypto Provider.
(2) 点击 File 菜单,单击 Save更新原有的App.config文件,打开可看到以下内容.
(3) 测试:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;
namespace test
{
class Program
{
staticvoid Main(string[] args)
{
////获取离散码
//string hash = Cryptographer.CreateHash("MD5Cng", "SensitiveData");
////打印显示
//Console.WriteLine(hash);
//Console.WriteLine("------------------------------------------------");
////验证
//bool equal = Cryptographer.CompareHash("MD5Cng", "SensitiveData", hash);
////打印结果
//if (equal)
//{
// Console.WriteLine("正确");
//}
//else
//{
// Console.WriteLine("错误");
//}
string Encrypt = Cryptographer.EncryptSymmetric("DPAPI Symmetric Crypto Provider", "SensitiveData");
Console.WriteLine("密文:"+ Encrypt);
Console.WriteLine("------------------------------------------------");
Encrypt = Cryptographer.DecryptSymmetric("DPAPI Symmetric Crypto Provider", Encrypt);
Console.WriteLine("原文:"+ Encrypt);
}
}
}
运行结果:
Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)相关推荐
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block
企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter ...
- Microsoft Enterprise Library 5.0 系列(五) Data Access Application Block
企业库数据库访问模块通过抽象工厂模式,允许用户通过简单的配置选择不同的数据库作为程序的数据源,大大解决了切换数据库时带来的麻烦.因为我本机只安装了SQL Server 2005,所以在此只做SQL的演 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block
黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 原文:黄聪:Microsoft Ent ...
- 黄聪mysql_黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Acc
企业库数据库访问模块通过抽象工厂模式 , 允许用户通过简单的配置选择不同的数据库作为程序的数据源 , 大大解决了切换数据库时带来的麻烦 . 因为我本机只安装了 SQL Server 2005, 所以在 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(九) Policy Injection Application Block
代理对象(Proxy Object)会通过Handler链定位到真实对象(Real Object),而Policy则被注入到代理对象和真实对象中.整个流程如图: 我个人对Policy Injectio ...
- Microsoft Enterprise Library 5.0 系列(二) Cryptography Application Block (初级)
企业库加密应用程序模块提供了2种方式让用户保护自己的数据: Hashingproviders: 离散加密法, 简单来说就是把你的信息保存到内存中后用一个离散值表示并返回给程序,这样在程序中只能看到离 ...
- Microsoft Enterprise Library 5.0 系列(四) Logging Application Block
企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信 ...
- Microsoft Enterprise Library 5.0 系列(十) Configuration Application Block
到目前为止,我们使用的模块都是在同一个配置文件中,这显然是不灵活的,我们希望每个功能模块能独立的在一个配置文件中体现,这样不仅易于管理,易于扩展,也易于阅读和分类.企业库当然考虑到了这个问题并且提供了 ...
最新文章
- 紘康单片机_紘康HY11P14 - SOC芯片 - 产品展示 - SOC芯片_IC芯片pcba开发_深圳市联泰威电子有限公司...
- Docker系列 八.Docker下 Mysql 启动慢查询日志
- python 学习之FAQ:find 与 find_all 使用
- 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
- 主要用于收集数据库服务器性能参数,数据库-布布扣-bubuko.com
- C语言实现队列ADT(Queue ADT)接口COMP2521(附完整源码)
- Dubbo——增强SPI的实现
- Java——集合(HashMap与Hashtable的区别)
- 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 3
- 【渝粤教育】国家开放大学2018年春季 0195-22T机械设计基础 参考试题
- a as as big rat_12句英语绕口令,你能一口气读完几句?
- max模型怎么导入ue4_UE4模型导入流程,3DMAX贴图丢失问题解决方法
- 实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)
- 详述Android马甲包
- 阿里云大数据工具,让海底捞更懂你
- qml 滚动控件Scroll ScrollBar ScrollIndicator ScrollView
- 大数据仓库技术实训任务2
- OpenCV~图像处理API(逆光、模糊、亮度、雾霾)
- java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例
- [Unity][ILRuntime][C#]热更新运行官方示例U3D项目报错
热门文章
- 文本框获取和失去焦点默认值问题
- html checked属性值,HTML复选框的checked属性的值是多少?
- h5页面不可 移动_H5营销|为什么H5适合于微信营销
- apt ubuntu 指定ipv4_macOS 下使用 Docker 搭建 ubuntu 环境
- C++ 使用模板需要注意的事情
- 线性表的定义和基本运算之线性结构
- 互联网晚报 | 4月13日 星期三 | 阿里云人事大变动;老坛酸菜方便面重返超市货架;工信部:加快5G全连接工厂建设...
- 互联网晚报 | 3月19日 星期六 |​ 拼多多回应“六万人砍价不成功”;Netflix计划向分享账号的用户收费...
- 编写一个猜数字游戏程序:
- 需求、需求工程与需求工程师 — 3. 需求工程的构成