下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → Microsoft .NET 中的简化加密__教程
Microsoft .NET 中的简化加密__教程
日期:2007-5-20 1:15:08 人气:168     [ ]
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页

加密练习
示例应用程序中包括一个窗体,允许您使用 DES 和 TripleDES 加密服务提供程序进行加密练习。该窗体名为 frmEncrypt,如图 3 所示。



图 3:加密算法允许您加密并解密值。

在该屏幕上,首先需要单击 Gen Key(生成密钥)按钮,然后单击 Gen IV(生成 IV)按钮。然后在 Original String(原始字符串)文本框中输入一些数据并单击 Encrypt(加密)按钮。单击 Encrypt(加密)按钮后,加密后的文本将显示在 Encrypted String(加密字符串)文本框中。如果您希望在自己的应用程序中使用这个加密的字符串,则需要记下生成的密钥和 IV,因为要解密连接字符串以便再次使用,您需要提供这两个值。如果丢失了密钥和 IV,将再也无法恢复连接字符串。

现在看一下其源代码,了解如何实现加密和解密例程。首先看一下该类的成员变量,它用于保存相应加密服务提供程序的引用。该成员变量的类型为 SymmetricAlgorithm。所有的对称算法类都是从这个基类继承而来的。

' Visual Basic .NET
Private mCSP As SymmetricAlgorithm
// C#
private SymmetricAlgorithm mCSP;
根据您在此窗体上选择的选项按钮,此 mCSP 变量将被指定给特定的对称算法类。SetEnc() 方法将负责创建适当的类型并将其返回到不同的方法。

' Visual Basic .NET
Private Function SetEnc() As SymmetricAlgorithm
If optDES.Checked Then
Return New DESCryptoServiceProvider
Else
If optTripleDES.Checked Then
Return New TripleDESCryptoServiceProvider
End If
End If
End Function

// C#
private SymmetricAlgorithm SetEnc()
{
if(optDES.Checked)
return new DESCryptoServiceProvider();
else
return new TripleDESCryptoServiceProvider();
}
如您所见,根据您在该窗体上选择的选项按钮,将创建 DESCryptoServiceProvider 对象或 TripleDESCryptoServiceProvider 对象。

实现加密和解密的密钥
要使用对称算法,必须提供要使用的密钥。每个 CryptoSymmetricAlgorithm 实现都提供一种 GenerateKey 方法。它们实际上使用的是公共语言运行时 (CLR) 类中内置的随机数生成器类。我们来看一下 Gen Key(生成密钥)按钮的 Click 事件处理程序,看它如何生成要使用的随机密钥值。

' Visual Basic .NET
Private Sub btnKeyGen_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles btnKeyGen.Click
mCSP = SetEnc()

mCSP.GenerateKey()

txtKey.Text = Convert.ToBase64String(mCSP.Key)
End Sub
// C#
private void btnKeyGen_Click(object sender,
System.EventArgs e)
{
mCSP = SetEnc();

mCSP.GenerateKey();

txtKey.Text = Convert.ToBase64String(mCSP.Key);
}
获取服务提供程序的特定实现后,只需调用 GenerateKey 方法来创建一个用于加密的新的随机密钥。密钥的大小取决于用来加密的特定提供程序。例如,DES 密钥的大小为 64 位,而 TripleDES 密钥的大小为 192 位。每个 SymmetricAlgorithm 类上都有一个 KeySize 属性,它将返回用于生成密钥的密钥大小。

我们还需要生成初始化向量 (IV)。IV 将帮助算法生成最终加密字符串的数据块。IV 用于开始第一个块的加密。如果不提供 IV,那么只要密钥相同,在字符串之间传递的通用数据将保持同一种模式。因此,需要使用 IV 作为加密数据的“随机”组件。通过这种方式,只要使用的 IV 不同,即使密钥相同,同一个数据也会被加密成完全不同的值。下面是生成新的 IV 的 Gen IV(生成 IV)按钮的源代码。

' Visual Basic .NET
Private Sub btnIVGen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIVGen.Click
mCSP.GenerateIV()

txtIV.Text = Convert.ToBase64String(mCSP.IV)
End Sub

// C#
private void btnIVGen_Click(object sender,
System.EventArgs e)
{
mCSP.GenerateIV();

txtIV.Text = Convert.ToBase64String(mCSP.IV);
}
此代码看起来与生成密钥的代码非常相似。每个加密服务提供程序类上都有一个 GenerateIV() 方法。如果未提供 IV,该方法将生成一个 IV。

加密数据
获得密钥和初始化向量后,现在可以使用 Key、IV 和 Original String 值来创建原始字符串值的加密版本。单击 Encrypt(加密)按钮将运行以下代码。
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.