下面简要介绍一下代码:
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
下篇文章我们讨论如何使用公共密钥加密。
(未完待续)