1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
Imports System
Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text
'Doit correspondre à 64 bits, 8 octets.
Private Const sSecretKey As String = "Password"
Public Sub Main()
EncryptFile("c:\temp\test.txt", _
"c:\temp\Encrypted.txt", _
sSecretKey)
DecryptFile("c:\temp\Encrypted.txt", _
"c:\temp\Decrypted.txt", _
sSecretKey)
End Sub
Sub EncryptFile(ByVal sInputFilename As String, _
ByVal sOutputFilename As String, _
ByVal sKey As String)
Dim fsInput As New FileStream(sInputFilename, _
FileMode.Open, FileAccess.Read)
Dim fsEncrypted As New FileStream(sOutputFilename, _
FileMode.Create, FileAccess.Write)
Dim DES As New DESCryptoServiceProvider()
'Définit la clé secrète pour l'algorithme DES.
'Une clé de 64 bits et un vecteur d'initialisation sont requis pour ce fournisseur
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
'Définit le vecteur d'initialisation.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
'crée un crypteur DES à partir de cette instance
Dim desencrypt As ICryptoTransform = DES.CreateEncryptor()
'Crée un flux de cryptage qui transforme le flux de fichier à l'aide du cryptage DES
Dim cryptostream As New CryptoStream(fsEncrypted, _
desencrypt, _
CryptoStreamMode.Write)
'Lit le texte du fichier dans le tableau d'octets
Dim bytearrayinput(fsInput.Length - 1) As Byte
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length)
'écrit le fichier crypté à l'aide de DES
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length)
cryptostream.Close()
End Sub
Sub DecryptFile(ByVal sInputFilename As String, _
ByVal sOutputFilename As String, _
ByVal sKey As String)
Dim DES As New DESCryptoServiceProvider()
'Une clé de 64 bits et un vecteur d'initialisation sont requis pour ce fournisseur.
'Définit la clé secrète pour l'algorithme DES.
DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey)
'Définit le vecteur d'initialisation.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
'crée un flux de fichier pour lire le fichier crypté de retour
Dim fsread As New FileStream(sInputFilename, FileMode.Open, FileAccess.Read)
'crée un décrypteur DES à partir de l'instance DES
Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor()
'crée un flux de cryptage, défini pour lire et effectuer une transformation
de décryptage DES sur les octets entrants
Dim cryptostreamDecr As New CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read)
'imprime le contenu du fichier décrypté
Dim fsDecrypted As New StreamWriter(sOutputFilename)
fsDecrypted.Write(New StreamReader(cryptostreamDecr).ReadToEnd)
fsDecrypted.Flush()
fsDecrypted.Close()
End Sub |
Partager