NET私钥加密实现
来源:互联网 发布:淘宝wap是什么意思 编辑:程序博客网 时间:2024/05/20 13:05
加密分目前为两种:私钥和公钥加密,也称对称性和非对称性加密.
私钥加密只使用一把钥匙来加解密,因为同一把密钥既用于加密又用于解密,所以私钥加密非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
加解密有太多东西要介绍了,所以这次只介绍私钥加密,私钥加密,只用于一次加密一个数据块,也就是将N个字节加密后转换为加密的字节输出,既然是加密 ,
当然需要一个KEY,Right?而在.NET 中提供的加密类使用的是一个称为"密码块链 (CBC) "的链模式,它需要一个KEY和一个IV初始化向量,它是分块来加密的,而要先用IV向量来加密第一个块,(万事必须有个开头嘛)
接着就用上一个块加密下一个块直到读取完毕.
另外发送和接收消息双方,必须互相传达了密钥和 IV 的值且密钥不能为未授权用户所知.
私钥加密的优点:速度快.缺点:有耐心的朋友可以用穷举法破解,呵呵,我可没耐心.
用途: 通常与公钥加密一起使用,在公钥加密中,先对公钥加密后再将公钥发送给对方.给公钥加密算法一个辅助作用.
啰嗦完了,下面看代码:(先在执行文件目录建一个文本文件)
//------------------------------文件加密过程
FileStream fin=new FileStream("input.txt",FileMode.Open,FileAccess.Read);
FileStream fout=new FileStream("output.txt",FileMode.OpenOrCreate,FileAccess.Write);
//创建加密类
DES des = new DESCryptoServiceProvider();
des.GenerateKey(); //获取随机产生的Key,和 IV
des.GenerateIV();
byte[] keys=des.Key;
byte[] ivs=des.IV;
long leng=fin.Length; //获取文件的长度
long temp=0; //临时变量
byte[] buffer=new byte[400]; //用于存储文件内容于缓存
CryptoStream cStream=new CryptoStream(fout,des.CreateEncryptor(keys,ivs),CryptoStreamMode.Write); //创建加密流并写入到"output.txt"文件
while(temp<leng)
{
int wLeng=fin.Read(buffer,0,400); //写入缓冲
cStream.Write(buffer,0,wLeng); //写入文件
temp=temp+leng;
Console.WriteLine("加密成功");
Console.ReadLine();
}
cStream.Close();
fout.Close();
fin.Close();
解密:
//------------------------------文件解密过程
FileStream fin1=new FileStream("output.txt",FileMode.Open,FileAccess.Read);
FileStream fout1=new FileStream("解密.txt",FileMode.OpenOrCreate,FileAccess.Write);
//DES des1 = new DESCryptoServiceProvider();
//des1.GenerateKey(); //获取随机产生的Key,和 IV
//des1.GenerateIV();
//byte[] keys1=des1.Key;
//byte[] ivs1=des1.IV;
long leng1=fin1.Length; //获取文件的长度
long temp1=0; //临时变量
byte[] buffer1=new byte[400]; //用于存储文件内容于缓存
CryptoStream cStream1=new CryptoStream(fout1,des.CreateDecryptor(keys,ivs),CryptoStreamMode.Write); //创建加密流并写入到"output.txt"文件
while(temp1<leng1)
{
int wLeng1=fin1.Read(buffer1,0,400); //写入缓冲
cStream1.Write(buffer1,0,wLeng1); //写入文件
temp1=temp1+leng1;
Console.WriteLine("解密成功");
Console.ReadLine();
}
cStream.Close();
fout.Close();
fin.Close();
//--------------------------Over
- .NET私钥加密实现
- NET私钥加密实现
- NET私钥加密实现
- NET私钥加密实现
- .net 简单实现加密
- ASP.net实现MD5加密!
- .net 实现字符串加密解密
- asp.net实现MD5加密
- .net 实现MD5加密功能
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- 用VB.NET实现MD5加密
- c#、vb.net 实现MD5加密
- 在ASP.Net中实现RSA加密
- 在ASP.NET中轻松实现加密
- Asp.Net中实现MD5加密
- 常用MD5加密 ASP.NET实现
- 在ASP.Net中实现RSA加密
- zz 网站1变n
- PL/SQL DEVELOPER 6对象比较功能说明(原创)
- 第一章、混
- datalist分页问题的解决办法
- sql service2000的安装 操作 常见问题
- NET私钥加密实现
- SQL SERVICE 2000的全文搜索的整理
- 关于数据动态绑定问题的解决方法
- 一个陌生女人的来信
- .NET中的密码学--对称加密(上)
- 常见的软件版本信息向大家做一详细的介绍(转)
- .NET中的密码学--对称加密(下)
- 新blog开张了^_^
- 如何下载网页中的flash SWF文件