C#:文件RSA加密解密问题 十万火急!!!
我从网上下了一个RSA文件加密解密类,实现后
加密时没问题,解密时老提示我:
未处理的“System.Security.Cryptography.CryptographicException”类型的异常出现在 mscorlib.dll 中。
其他信息: 不正确的数据。
望高手给予解决
下面是相关代码
解密代码:
public void Decrypt(string inFileName, string outFileName, string PrivateKey)
{
rsa.FromXmlString(PrivateKey);
FileStream fin = new FileStream(inFileName, FileMode.Open, FileAccess.Read);//输
FileStream fout = new FileStream(outFileName,OpenOrCreate, FileAccess.Write);//
fout.SetLength(0);//将该流的长度设置为给定值。如果给定值小于流
byte[] bin = new byte[100];
long rdlen = 0;
long totlen = fin.Length;//获取用字节表示的流长度。
int len;
while (rdlen < totlen)
{
byte[] bout;
len = fin.Read(bin, 0, 100);//从输入流中读取字节块并将该数据写入给定缓
bout = rsa.Decrypt(bin, false);///***执行到这一行就提示上述的错误***
fout.Write(bout, 0, bout.Length);
rdlen = rdlen + len;
}
fout.Close();
fin.Close();
}
加密代码
public void Encrypt(string inFileName, string outFileName, string PublicKey)
{
rsa.FromXmlString(PublicKey);
FileStream fin = new FileStream(inFileName, FileMode.Open, FileAccess.Read);
FileStream fout = new FileStream(outFileName, de.OpenOrCreate,FileAccess.Write);
fout.SetLength(0);
byte[] bin = new byte[100];
long rdlen = 0;
long totlen = fin.Length;
int len;
while (rdlen < totlen)
{
byte[] bout;
len = fin.Read(bin, 0, 100);//从输入流中读取数据到字节数组bin中的0~100
bout = rsa.Encrypt(bin,false);//对bin这部分数据加密,并把加密后的字节
fout.Write(bout, 0, bout.Length);//把bout长度的数据写到输出流中;
rdlen = rdlen + len;
}
fout.Close();
fin.Close();
}
完整的类在下面地址里:
http://www.2182.cn/bbs/Show.Asp?ID=244