密码系统与.NET Framework (二)[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:


下面简要介绍一下代码:
1.我们创建一个类SecurityHelper,它包含两个函数:Encrypt()、Decrypt()。Encrypt接收要被编码的字符(String),并以字节数组的形式返回。Decrypt以字节数组的形式接收加密后的数据,并返回字符型解密数据。

2.类中有两个字节数组型公共变量。它们被用来指定密钥及初始向量。

3.在Encrypt()函数中,首先使用GetBytes()方法,把将要加密的字符转换成字节数组。

4.接着创建一个TripleDESCryptoServiceProvider类实例。

5.密钥和初始向量你可以自己提供,也可以由TripleDESCryptoServiceProvider类自动产生。如果没有提供密钥和初始向量,则分别调用GenerateKey() 和GenerateIV()方法。他们会自动创建一个随机的密钥和初始向量。然后将密钥和初始向量分配给公共变量Key和IV。

6.接着,我们调用TripleDESCryptoServiceProvider类的CreateEncryptor() 方法并选择返回ICryptoTransform类型变量。ICryptoTransform接口定义了密码转换的基本操作。

7.然后创建一个MemoryStream(memory stream),加密过的数据将被保存在此。

8.通过刚才的MemoryStream及上面创建的encrytor对象创建CrytoStream。

9.然后我们向CryptoStream对象写入加密过的数据。它保存了MemoryStream中的加密过的译文。

最后我们读取加密后的数据,将它放入到字节数组中。。

解密的过程正好相反,它们最大的不同就是当我们调用TripleDESCryptoServiceProvider 的方法CreateDecryptor()  。

这篇文章介绍了如何使用TripleDESCryptoServiceProvider 类加密和解密

数据。你可以根据自己的需求做适当修改。对这种算法的一些用途可能是 - 存放口令在 数据库, 机密性的数据比如银行帐户等。上面我们使用MemoryStream来输出数据,你也可以使用FileStream对象将数据保存到硬盘文件中。

下载事例代码:http://cctcc1.51.net/Triple-DES.rar

下篇文章我们讨论如何使用公共密钥加密。

(未完待续)

本文关键:密码系统与.NET Framework (二)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top