Hi
try the following
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Security.Cryptography
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.IO
''' <summary>
''' Summary description for Cryptography
''' </summary>
Public Class Cryptography
Public Shared rsa As RSACryptoServiceProvider
Public Shared Sub AssignParameter()
Const PROVIDER_RSA_FULL As Integer = 1
Const CONTAINER_NAME As String = "SpiderContainer"
Dim cspParams As CspParameters
cspParams = New CspParameters(PROVIDER_RSA_FULL)
cspParams.KeyContainerName = CONTAINER_NAME
cspParams.Flags = CspProviderFlags.UseMachineKeyStore
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider"
rsa = New RSACryptoServiceProvider(cspParams)
End Sub
Public Shared Function EncryptData(data2Encrypt As String, path As String) As String
AssignParameter()
'StreamReader reader = new StreamReader(@"C:\Inetpub\wwwroot\dotnetspiderencryption\publickey.xml");
Dim reader As New StreamReader(path & "/publickey.xml")
Dim publicOnlyKeyXML As String = reader.ReadToEnd()
rsa.FromXmlString(publicOnlyKeyXML)
reader.Close()
'read plaintext, encrypt it to ciphertext
Dim plainbytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data2Encrypt)
Dim cipherbytes As Byte() = rsa.Encrypt(plainbytes, False)
Return Convert.ToBase64String(cipherbytes)
End Function
Public Shared Sub AssignNewKey(path As String)
AssignParameter()
'provide public and private RSA params
Dim writer As New StreamWriter(path & "/privatekey.xml")
Dim publicPrivateKeyXML As String = rsa.ToXmlString(True)
writer.Write(publicPrivateKeyXML)
writer.Close()
'provide public only RSA params
writer = New StreamWriter(path & "/publickey.xml")
Dim publicOnlyKeyXML As String = rsa.ToXmlString(False)
writer.Write(publicOnlyKeyXML)
writer.Close()
End Sub
Public Shared Function DecryptData(data2Decrypt As String, path As String) As String
AssignParameter()
Dim getpassword As Byte() = Convert.FromBase64String(data2Decrypt)
Dim reader As New StreamReader(path & "/privatekey.xml")
Dim publicPrivateKeyXML As String = reader.ReadToEnd()
rsa.FromXmlString(publicPrivateKeyXML)
reader.Close()
'read ciphertext, decrypt it to plaintext
Dim plain As Byte() = rsa.Decrypt(getpassword, False)
Return System.Text.Encoding.UTF8.GetString(plain)
End Function