说到数据的加密,似乎给话题添加了一股神秘色彩的味道.
我们今天来说说.net中的加密技术,当然,本人才疏学浅,菜鸟一枚,还需要,这里仅仅是浅谈,非常非常浅的谈
System.Security.Cryptography 命名空间提供加密服务,其中包括数据的安全编码和解码、哈希、随机数生成和消息身份验证。
.net框架提供了许多标准加密算法的实现,由于明确定义了包含定义基本算法类型(对称、非对称和哈希算法)的抽象类以及算法类的继承等级,因此可以方便地对这些实现进行扩展,就这两句话,可以看到里边门道很多的,水很深的!!!
对称算法的支持
NET 提供以下的 类 以提供对称的密钥加密算法:
DESCryptoServiceProvider
RC2CryptoServiceProvider
RijndaelManaged
TripleDESCryptoServiceProvider
我这里也就对 TripleDESCryptoServiceProvider类的使用简单的测试一下,大神勿喷!!!
由于,代码比较简单 其他废话不多了,直接上代码的了
<span style="white-space:pre"> </span> string myEnounce = "<菜鸟也疯狂>"; //需要被加密的字符串
TripleDESCryptoServiceProvider key = new TripleDESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream encStream = new CryptoStream(ms, key.CreateEncryptor(), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(encStream,Encoding.UTF8);
sw.WriteLine(myEnounce);
sw.Close();
//将加密后的数据流转换为数组
byte[] buffer = ms.ToArray();
//将转换为的中间加密代码保存在123.txt文本文档中
using (StreamWriter srMidCode = new StreamWriter("C:\\Users\\ZJ\\Desktop\\123.txt") )
{
for (int i = 0; i < buffer.Length; i++)
{
srMidCode.Write(buffer[i]);
}
}
//将转换为的中间加密代码在控制台中输出
for (int i = 0; i < buffer.Length; i++)
{
Console.Write(buffer[i]);
}
Console.Write("\n");
//解密
ms = new MemoryStream(buffer);
encStream = new CryptoStream(ms, key.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(encStream);
//输出解密后的内容
Console.WriteLine(sr.ReadLine());
key.Clear();
sr.Close();
Console.ReadLine();
当然,还需要包含以下的头文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.Cryptography;
OK ,到此,欢迎拍砖,欢迎不一样的思想抨击,如果大家发现有什么错的,请不要吝啬你们的砖头,狠狠的砸向我吧!!!!