Cerca

VB.NET – Cifrare le stringhe con l’algoritmo TripleDes

Indice Articolo

Ultimi articoli pubblicati

Su quello che è l’algoritmo di cifrature TripleDes vi invito a leggere questo articolo su Wikipedia in qui è spiegato molto bene il funzionamento e la sicurezza del algoritmo. Oggi sono qua a farvi vedere un esempio di cifratura di stringhe con questo ottimo algoritmo. Come prima cosa dovete importare nel vostro progetto la libreria System.Security.Cryptography:

Imports System.Security.Cryptography

A questo punto nella vostra classe dovete definire due varibili globali un chiave di cifratura e un vettore di inizializzazione per l’algoritmo di cifratura. Ecco un esempio di come possono essere queste due varibili:

Private key() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
Private iv() As Byte = {65, 110, 68, 26, 69, 178, 200, 219}

Io qua ho definito il direttamente il byte del key di cifratura e del vettore di inizializzazione. Voi potete partire anche da stringhe come “CIAOMAMMACOMEMIDIVERTO” e poi prendere i byte con il metodo GetByte che trovate nella classe Encoding.ASCII:

iv = UTF8Encoding.ASCII.GetBytes(“CIAOMAMMACOMEMIDIVERTO“)

Una volta che avete creato queste due varibili globali, nella vostra funzione di cifrature (la quale in ingresso vorrà una stringa – testodacifrare -) dovete dichiarare le seguenti variabili:

Dim uEncoder As UTF8Encoding = New UTF8Encoding()
Dim byteIngresso() As Byte
Dim tdProvider As TripleDESCryptoServiceProvider
Dim icTransform As ICryptoTransform
Dim mStream As MemoryStream
Dim cStream As CryptoStream

Poi per cifrare questa stringa dovete scrivere queste righe di codice:

Try
byteIngresso = uEncoder.GetBytes(testodacifrare)
tdProvider = New TripleDESCryptoServiceProvider()
icTransform = tdProvider.CreateEncryptor(Me.key, Me.iv)
mStream = New MemoryStream()
cStream = New CryptoStream(mStream, icTransform, CryptoStreamMode.Write)
cStream.Write(byteIngresso, 0, byteIngresso.Length)
cStream.FlushFinalBlock()
mStream.Position = 0

E poi generate l’output così:

Dim result(mStream.Length – 1) As Byte
mStream.Read(result, 0, mStream.Length)
cStream.Close()
Return result
Catch ex As Exception
Throw ex
End Try

Adesso la vostra stringa è cifrata, ma come farete a decifrarla?! Ve lo dico domani :). Buona programmazione a tutti.

3 risposte

  1. ciao, l’articolo è proprio interessante, devo sviluppoare una applicazione con l’algoritmo 3Des, ho provato utilizzando il codice ma avendo sempre utilizzato ASP classic non capisco come implementarlo. Ho proceduto così: copiato in ordine il codice, ma non funziona. Come devo proceder? Grazie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

due × 2 =