如何用RSA加密大文件?
我用RSA加密十几个字符的文本文件,可以!可我用同样的程序加密184K的WORD文档,却出现了异常,请问如何用RSA加密及解密大文件?请高手回答,谢谢!!!
下面是我的原代码:
加密:
Dim finfo As FileInfo = New FileInfo("F:\pub.xml") 'pub.xml放有公有密钥
Dim buf() As Byte = New Byte(finfo.Length) {}
Dim fs As FileStream = File.OpenRead("F:\pub.xml")
fs.Read(buf, 0, buf.Length)
fs.Close()
Dim xstr As String = (New ASCIIEncoding()).GetString(buf)
Dim rsa As New RSACryptoServiceProvider
rsa.FromXmlString(xstr)
Dim info As FileInfo = New FileInfo("F:\1.txt") '对1.txt进行加密
Dim inbuf() As Byte = New Byte(info.Length) {}
fs = File.OpenRead("F:\1.txt")
fs.Read(inbuf, 0, inbuf.Length)
fs.Close()
Dim outbuf() As Byte
outbuf = rsa.Encrypt(inbuf, True)
fs = File.OpenWrite("F:\1.bin") '加密后的文件为1.bin
fs.Write(outbuf, 0, outbuf.Length)
fs.Close()
解密:
Dim finfo As FileInfo = New FileInfo("F:\key.xml") 'key.xml放有公有及私有密钥
Dim buf() As Byte = New Byte(finfo.Length) {}
Dim fs As FileStream = File.OpenRead("F:\key.xml")
fs.Read(buf, 0, buf.Length)
fs.Close()
Dim xstr As String = (New ASCIIEncoding()).GetString(buf)
Dim rsa As New RSACryptoServiceProvider
rsa.FromXmlString(xstr)
Dim info As FileInfo = New FileInfo("F:\1.bin")
Dim inbuf() As Byte = New Byte(info.Length) {}
fs = File.OpenRead("F:\1.bin")
fs.Read(inbuf, 0, inbuf.Length)
fs.Close()
Dim outbuf() As Byte
outbuf = rsa.Decrypt(inbuf, False)
fs = File.OpenWrite("F:\2.txt") '解密后的文件为2.txt
fs.Write(outbuf, 0, outbuf.Length)
fs.Close()