Ciao
Per la criptazione puoi usare la classe Rijndael nel namespace System.Security.Cryptography. Il metodo da usare è molto semplice, un esempio di codice potrebbe essere questo:
Sub CrittaFile(ByVal filePath As String, ByVal passw As String)
'Apre uno stream da cui leggere il file e uno su cui scrivere il nuovo file
Using sRead As New FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None), _
sWrite As New FileStream(Path.ChangeExtension(filePath, ".cryp"), FileMode.Create)
'Crea il crittografatore
Dim crypto As New RijndaelManaged()
Dim md5 As New MD5CryptoServiceProvider()
Dim passwBytes As Byte() = Encoding.Unicode.GetBytes(passw)
'Imposta chiave e IV per la crittografazione
crypto.Key = md5.ComputeHash(passwBytes)
crypto.IV = md5.ComputeHash(crypto.Key)
'Adesso usa il crittografatore per crittografare lo stream
Using cStream As New CryptoStream(sWrite, crypto.CreateEncryptor(), CryptoStreamMode.Write)
'Ottiene i dati non crittografati
Dim data(sRead.Length - 1) As Byte
sRead.Read(data, 0, data.Length)
'E li crittografa nel file in uscita
cStream.Write(data, 0, data.Length)
End Using
End Using
'Adesso elimina il file non crittato
File.Delete(filePath)
End Sub
Sub DecrittaFile(ByVal filePath As String, ByVal passw As String)
'Apre uno stream da cui leggere il file e uno su cui scrivere il nuovo file
Using sRead As New FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None), _
sWrite As New FileStream(Path.ChangeExtension(filePath, ".xml"), FileMode.Create)
'Crea il decrittografatore
Dim crypto As New RijndaelManaged()
Dim md5 As New MD5CryptoServiceProvider()
Dim passwBytes As Byte() = Encoding.Unicode.GetBytes(passw)
'Imposta chiave e IV per la crittografazione
crypto.Key = md5.ComputeHash(passwBytes)
crypto.IV = md5.ComputeHash(crypto.Key)
'Adesso usa il decrittografatore per decrittografare lo stream
Using cStream As New CryptoStream(sRead, crypto.CreateDecryptor(), CryptoStreamMode.Read)
'Ottiene i dati crittografati
Dim data(sRead.Length - 1) As Byte
Dim realSize As Integer = cStream.Read(data, 0, data.Length)
'E li decrittografa nel file in uscita
sWrite.Write(data, 0, realSize)
End Using
End Using
''Se vuoi, elimina il file crittato
'File.Delete(filePath)
End Sub
Luca