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

时间:2022-09-06 22:27:35

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

本章介绍的是企业库加密应用程序模块Cryptographyproviders中为对称加密配置Key文件的3种方式:

  1. create a new key  : 使用一串字符串作为Key,然后通过加密保存到一个Key文件中.
  2. use an existing DPAPI-protected key file  : 使用一个现有的Key文件进行配置.
  3. import a password-protected key file   : 对导出的Key文件再进行一次Password加密.

废话少说,现在就开始看看如何使用它们吧:

一.  Create a new key 

  1.运行EntLibConfig.exe,选择Blocks菜单 ,单击 Add CryptographySettings .

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

  2.点击symmetriccryptography provider  区块右上角的加号按钮,然后点击 Add Symmetric Cryptography Providers,在弹出的加密算法中任意选择一个:

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

  3.在弹出的Key文件生成方案中,我们选择第一个Create a new key,点击Next:

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

  4.下一步是要你输入Key码,你可以自己手动输入一串自己定制好的Key码,也可以点击右下角的Generate按钮,让计算机为你自动生成一串Key码,在此我是直接点击Generate按钮生成的Key码,然后点击Next:

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

  5.接着是选择Key文件导出的目录,这里我先保存成桌面的test.key文件,设置好后点击Next:

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

  6.接着是选择模式,有User模式和Machine模式:
  

    ()User模式:每个应用程序有自己的唯一标识,无法访问其他应用程序的资源.
    ()Machine模式:加密的文件只能使用在本电脑上使用,也就是说用这个模式,在其他电脑你还需要重新生成一个Key文件.
    在本地调试哪个模式都无所谓,我们就选择User模式吧:

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

  7.再点击Finish,就完成配置啦:

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

  桌面导出的Key文件:

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

  8.点击 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>

<symmetricCryptoProviders>

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

algorithmType="System.Security.Cryptography.RC2CryptoServiceProvider,mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

protectedKeyFilename="C:\Users\Administrator\Desktop\test.key"

protectedKeyProtectionScope="CurrentUser"/>

</symmetricCryptoProviders>

</securityCryptographyConfiguration>

</configuration>

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

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

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

  添加引用:

using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;

  10.测试:

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 Encrypt = Cryptographer.EncryptSymmetric("RC2CryptoServiceProvider", "HuangCong");            Console.WriteLine("密文:"+ Encrypt);            Console.WriteLine("------------------------------------------------");            Encrypt = Cryptographer.DecryptSymmetric("RC2CryptoServiceProvider", Encrypt);            Console.WriteLine("原文:"+ Encrypt);        }    }}

  11.运行结果:

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

二.  use an existingDPAPI-protected key file: 

  1. 为了不混淆之前的实验,我们先将原来的策略删除,恢复到最初的状态:

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

  1. 点击symmetric cryptography provider  区块右上角的加号按钮,然后点击 Add Symmetric Cryptography Providers,在弹出的加密算法中我们需要选择和之前一样的加密方法,因为你之前导出的Key文件只针对该算法而导出的:

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

  1. 又到了Key文件生成方案中,我们选择第二个Use an existing DPAPI-protected key file,点击Next:

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

  1. 接着就会要我们选择一个已经存在的Key文件作为本策略的Key文件,我们就选择之前刚刚创建好的test.key文件吧:

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

  1. 接着是选择模式,以前讲过,就不重复了,点击Finish完成配置.

   6.点击 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>

<symmetricCryptoProviders>

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

algorithmType="System.Security.Cryptography.RC2CryptoServiceProvider,mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

protectedKeyFilename="C:\Users\Administrator\Desktop\test.key"

protectedKeyProtectionScope="CurrentUser"/>

</symmetricCryptoProviders>

</securityCryptographyConfiguration>

</configuration>
  1. 测试:
  1. 运行结果:

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

三.   Import a password-protected key file 

  1. 为了完成该实验,我们要先导出一个用Password加密过的key文件,则我们可以在刚才的策略工具栏上右键,选择Export Key:

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

  1. 接着设置的是对Key文件加密的密码和密码保存文件存放目录,在此我设置的密码是123456,存放目录为桌面的test.txt文件:

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

  1. 点击OK,就可以在桌面看到导出的密码保存文件啦:

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

  1. 为了不混淆之前的实验,我们先将原来的策略删除,恢复到最初的状态:

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

  1. 点击symmetric cryptography provider  区块右上角的加号按钮,然后点击 Add Symmetric Cryptography Providers,在弹出的加密算法中任意选择一个,为了做区分,我们仍然要选择原来的加密方法:

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

  1. Key文件生成方案中,我们选择第三个Import a password-protected key file,点击Next: 

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

  1. 接着程序要你提供密码保存文件和密码,在这里我们可以导入桌面的test.txt文件,密码输入123456,接着点击Next:

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

  1. 接着选择新导出的key文件的存放目录,这里我们保存它成桌面的test1.key文件,点击Next:

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

  1. 接着是选择模式,以前讲过,就不重复了,点击Finish完成配置.

  10. 点击 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>

<symmetricCryptoProviders>

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

algorithmType="System.Security.Cryptography.RC2CryptoServiceProvider,mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

protectedKeyFilename="C:\Users\Administrator\Desktop\test1.key"

protectedKeyProtectionScope="CurrentUser"/>

</symmetricCryptoProviders>

</securityCryptographyConfiguration>

</configuration>
  1. 测试:
  1. 运行结果:

黄聪: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种方 ...

  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; Caching Application Block &lpar;高级&rpar;

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

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

    http://www.360doc.com/content/13/0918/22/15643_315482318.shtml http://www.360doc.com/content/13/0918 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 织梦系统&OpenCurlyDoubleQuote;当前位置”&lbrace;dede&colon;field&period;position&rcub;的修改方法

    dedecms中修改当前位置{dede:field.position},就是只要首页>一级栏目>二级栏目这样.找到include/typelink.class.php,找到这个文件里的这个 ...

  2. 闹钟--alarmManager

    1.AlarmManager,顾名思义,就是“提醒”,是Android中 常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent.简单的说就是我们设定一个时间,然后在该时间到来 时 ...

  3. Java连接数据库,及增删改查

    自定义连接数据库的util类 package com.shuzf.jdbc; import java.sql.Connection; import java.sql.DriverManager; im ...

  4. 前端 - jquery方式 &sol; iframe &plus;form 方式 上传文件

    环境与上一章一样 jquery 方式上传文件: HTML代码 {#html代码开始#} <input type="file" id="img" > ...

  5. VMware安装CentOS6

    1. 搭建虚拟化环境常见故障讲解 2. 安装CentOS Linux系统 ……………… PS:运维老鸟教你安装centos6.5如何选择安装包 3. 远程连接LInux ip配置 注意:不用做任何修改 ...

  6. 【Java并发编程】:并发新特性—信号量Semaphore

    在操作系统中,信号量是个很重要的概念,它在控制进程间的协作方面有着非常重要的作用,通过对信号量的不同操作,可以分别实现进程间的互斥与同步.当然它也可以用于多线程的控制,我们完全可以通过使用信号量来自定 ...

  7. Tiny4412 虚拟机交叉编译环境的设置以及编译u-boot 和 kernel

    从CD 里面拷贝如下文件到虚拟机里面 解压 查看是否有如下文件 tiny4412_qt@chenfl:~/tiny4412$ ls opt/FriendlyARM/toolschain/4.5.1/b ...

  8. BZOJ Lydsy5月月赛 ADG题解

    题目链接 BZOJ5月月赛 题解 好弱啊QAQ只写出三题 A 判断多干个数乘积是否是某个数的倍数有很多方法,比较常用的是取模,但这里并不适用,因为模数不定 会发现数都比较小,所以我们可以考虑分解质因子 ...

  9. Csharp&colon; Detect Mobile Browsers

    /// <summary> /// 檢測手機客戶端 HttpCapabilitiesBase.IsMobileDevice /// .NET 4.5 /// 塗聚文注 /// </s ...

  10. 【set】bzoj2761 &lbrack;JLOI2011&rsqb;不重复数字

    set去重. #include<cstdio> #include<set> using namespace std; set<int>S; ],b[],en; in ...