C#使用RSA加密解密文件
本文实例为大家分享了C#使用RSA加密解密文件的具体代码,供大家参考,具体内容如下
加密代码:
//加密代码,注意会覆盖原文件,里面有我的公钥,你要用时记得覆盖我的公钥
privateboolencryptFile(stringfilename)
{
FileStreamf;
try
{
f=newFileStream(filename,FileMode.Open,FileAccess.ReadWrite,FileShare.Read);
}
catch
{
returnfalse;
}
Randomr=newRandom();
Thread.Sleep(10*r.Next(3,8));
RSACryptoServiceProviderrsa=newRSACryptoServiceProvider(1024);
rsa.FromXmlString("w7nNT8U7kwTw8UqLk0lROxmfTRZnQrMH1QrNyUGtoeAJ3w+iH08j+h83cPWxwPoxpXm1cgCLFWtCFWY1rkQDCCLxJhUIwYTbGKTg9h0uUVfNxGiNji7dcHShd01UYpZjHCwOar1wjJD4vJqVJCk++59UUMhE9IUATuSUVpRy1bE= AQAB ");
//导入密钥
byte[]data=newbyte[16];
ArrayListcon=newArrayList();
while(f.Read(data,0,16)!=0)
{
byte[]result=rsa.Encrypt(data,false);
//Thread.Sleep(10*r.Next(2,7));
con.Add(result);
}
//加密
f.Seek(0,SeekOrigin.Begin);
foreach(byte[]dincon)
{
f.Write(d,0,d.Length);
}
f.Close();
returntrue;
}
解密代码:
//解密代码,覆盖原文件,返回值表示是否解密成功
privatebooldecryptFile(stringfilename,stringkey)
{
FileStreamf;
try
{
f=newFileStream(filename,FileMode.Open,FileAccess.ReadWrite,FileShare.Read);
}
catch
{
returnfalse;
}
RSACryptoServiceProviderrsa=newRSACryptoServiceProvider(1024);
try
{
rsa.FromXmlString(key);
}
catch
{
returnfalse;
}
byte[]data=newbyte[128];
ArrayListcon=newArrayList();
while(f.Read(data,0,128)!=0)
{
byte[]result;
try
{
result=rsa.Decrypt(data,false);
}
catch
{
returnfalse;
}
con.Add(result);
}
//解密
f.SetLength(con.Count*16);
f.Seek(0,SeekOrigin.Begin);
foreach(byte[]dincon)
{
f.Write(d,0,d.Length);
}
f.Close();
returntrue;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。