黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

时间:2022-09-06 22:36:08

原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

企业库加密应用程序模块提供了2种方式让用户保护自己的数据:

  1. Hashingproviders:  离散加密法, 简单来说就是把你的信息保存到内存中后用一个离散值表示并返回给程序,这样在程序中只能看到离散值而不是明文,这样就起到简单的加密效果啦.
  2. Cryptographyproviders: 密钥加密法. 用对称加密方法对数据进行加密(尚未支持非对称加密).

使用企业库加密应用程序模块的优势:

  1. 减少了需要编写的模板代码,执行标准的任务,可以用它来解决常见的应用程序加密的问题.
  2. 有助于维持一个应用程序内和跨企业的数据传输加密.
  3. 允许管理员进行加密配置,包括使用组策略.
  4. 可扩展,支持用户自定义加密技术.

下面介绍如何使用Microsoft Enterprise Library 5.0中的加密应用程序模块.

1.下载安装好MicrosoftEnterprise Library 5.0,然后在运行EntLibConfig.exe

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

2. 选择Blocks菜单 ,单击 Add CryptographySettings .

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

下面分别样式如何创建Hash Providers Symmetric CryptographyProviders 加密策略:

(A)   Hash Providers 策略使用步骤:

  (1)    点击HashProviders 区块右上角的加号按钮, Add Hash Providers, 然后点击Add Hash Algorithm Provider,在弹出的对话框中选择System.Core下的MD5Cng,

      表示我们要用MD5的加密方法获取离散值.

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

  (2) 点击 File 菜单,单击 Save,保存为一个App.config文件,可以先保存到桌面,之后要用到它. 用记事本打开App.config,可以看到如下内容.

代码
<configuration>
<configSections>
<section name="securityCryptographyConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Configuration.CryptographySettings,Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=5.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
</configSections>
<securityCryptographyConfiguration>
<hashProviders>
<add name="MD5Cng" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider,Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=5.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35"
algorithmType="System.Security.Cryptography.MD5Cng,System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
saltEnabled="true"/>
</hashProviders>
</securityCryptographyConfiguration>
</configuration>

  (3) 要使用缓存应用程序模块, 需要导入相应的Dll文件,在此我们要导入的是Microsoft.Practices.EnterpriseLibrary.Caching.dll ,将App.config文件添加到项目中,

     并添加usingMicrosoft.Practices.EnterpriseLibrary.Security.Cryptography引用:

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

  添加引用:

usingMicrosoft.Practices.EnterpriseLibrary.Security.Cryptography;

  (4) 测试:

usingSystem;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("错误");            }        }    }}

运行结果:

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

(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.

  黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)

  (2)    点击 File 菜单,单击 Save更新原有的App.config文件,打开可看到以下内容.

代码
<configuration>

<configSections>

<section name="securityCryptographyConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Configuration.CryptographySettings,Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=5.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>

</configSections>

<securityCryptographyConfiguration defaultHashInstance="MD5Cng">

<hashProviders>

<add name="MD5Cng" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider,Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=5.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35"

algorithmType="System.Security.Cryptography.MD5Cng,System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

saltEnabled="true"/>

</hashProviders>

<symmetricCryptoProviders>

<add type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.DpapiSymmetricCryptoProvider,Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=5.0.414.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35"

name="DPAPISymmetric Crypto Provider"/>

</symmetricCryptoProviders>

</securityCryptographyConfiguration>

</configuration>

  (3)     测试:

using System;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 (初级)的更多相关文章

  1. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;二&rpar; Cryptography Application Block &lpar;高级&rpar;

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...

  2. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;三&rpar; Validation Application Block &lpar;初级&rpar;

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...

  3. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;一&rpar; &colon; Caching Application Block &lpar;初级&rpar;

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(一) : Caching Application Block (初级) 本篇文章具体官方解释请参照以下链接: h ...

  4. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;六&rpar; Security Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...

  5. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;四&rpar; Logging Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图:   从上图我们可以 ...

  6. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;三&rpar; Validation Application Block &lpar;高级&rpar;

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...

  7. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;一&rpar; Caching Application Block &lpar;高级&rpar;

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (高级) Caching Application Bl ...

  8. 黄聪:Microsoft Enterprise Library 5&period;0 系列教程&lpar;十&rpar; Configuration Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(十) Configuration Application Block 到目前为止,我们使用的模块都是在同一个配置 ...

  9. Microsoft Enterprise Library 5&period;0 系列教程&lpar;四&rpar; Logging Application Block

    Download dll: http://www.microsoft.com/en-us/download/confirmation.aspx?id=15104 http://www.cnblogs. ...

随机推荐

  1. zookeeper能做什么?

    Zookeeper是Hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多.今天我想谈谈zookeeper,本文不谈如何使用zo ...

  2. Appium&plus;Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装

    让我们开始在Windows中开始安装Appium吧,Appium在OS X中的具体安装后面的文章会介绍. 另外,官网上说先要装Node.js,还要装Apache Ant和Apache Maven,Gi ...

  3. GIT&colon; 远程建立一个仓库,然后复制到本地

    1. 登录  GIT,创建一个新的仓库 gitskills 2. 创建的时候,要选择 Initialize this repository with a readme ,让GitHub初始化仓库 3. ...

  4. Android框架 加载图片 库 Picasso 的使用简介

    0 说明 现在Android开源库中有许多图片加载框架,本文以picasso为例,总结下开发过程中的一些优化经验,使用的picasso版本如下 compile 'com.squareup.picass ...

  5. spring mvc velocity多视图

    1.ViewResolverUrlBasedViewResolver 这个东西是根据url 进行路由的.网上搜了 1.order 排序,同名出现各种问题 2.XmlViewResolver,BeanN ...

  6. 大数据应用日志采集之Scribe演示实例完全解析

    大数据应用日志采集之Scribe演示实例完全解析 引子: Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个*存储系 ...

  7. JavaScript作用域链和垃圾回收机制

    作用域链 基本概念: 在了解作用域链和内存之前,我们先了解两个概念,分别是执行环境和变量对象. 执行环境:定义变量或者函数有权访问的其他数据,决定了它们各自的行为.每个对象都有自己的执行环境. 变量对 ...

  8. laraval migration 新增字段或者修改字段的方法

    1.进入项目根目录执行artisan命令生成migration文件,可以指定--table和--path参数,会在对应目录下生成migration文件. php artisan make:migrat ...

  9. rabbitmq更换数据文件和日志文件的存放位置

    原来的默认位置是/var下 需要将这些文件更换位置 1.先创建数据文件和日志文件存放位置的目录并给权限 mkdir -p /usr/local/rabbitmq/mnesia mkdir -p /us ...

  10. openwrt的编译方法

    1.获取最新包 ./scripts/feeds update -a 2.安装包 ./scripts/feeds install -a 3.配置 make menuconfig 4.编译 make -j ...