RSA算法用toxmlstring生成的密钥对能加密不能解密
Public Function RSAtextEncrypting(ByVal publickey As String, ByVal sourcestr As String) As String
Dim finfo As FileInfo = New FileInfo(publickey)
Dim buf() As Byte = New Byte(finfo.Length) {}
Dim fs As FileStream = File.OpenRead(publickey)
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 inbuf() As Byte = New Byte(Encoding.Unicode.GetBytes(sourcestr).Length) {}
inbuf = Encoding.Unicode.GetBytes(sourcestr)
Dim outbuf() As Byte
outbuf = rsa.Encrypt(inbuf, true)
Return Replace(BitConverter.ToString(inbuf), "-", "")
End Function
Public Function RSAtextDecrypting(ByVal privatekey As String, ByVal sourcestr As String) As String
Dim finfo As FileInfo = New FileInfo(privatekey)
Dim buf() As Byte = New Byte(finfo.Length) {}
Dim fs As FileStream = File.OpenRead(privatekey)
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 inbuf() As Byte = New Byte(getbytex(sourcestr).Length) {}
inbuf = getbytex(sourcestr)
Dim outbuf() As Byte
outbuf = rsa.Decrypt(inbuf, True)
Return Encoding.Unicode.GetString(outbuf)
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Clickvb.net加密
MsgBox(RSAtextEncrypting("C:\Users\abc\Documents\PGPbak\Pgpbak\ab(onlypublic).txt", "nkl"))
RSAtextDecrypting("C:\Users\abc\Documents\PGPbak\Pgpbak\ab(onlypublic).txt", RSAtextEncrypting("C:\Users\abc\Documents\PGPbak\Pgpbak\ab(onlypublic).txt", "nkl"))
End Sub