I programmatori sanno bene quanto sia importante mettere in sicurezza i propri software da eventuali fughe di dati. La protezione delle informazioni contenute in un software o in un sito web è la priorità numero uno per ogni sviluppatore, soprattutto se contengono dati personali di persone e clienti.
Tra le tecniche più comuni utilizzate per la protezione dei dati contenuti in un programma, troviamo quella della criptazione (encrypting) delle informazioni. La criptazione dei dati consiste semplicemente nel renderli apparentemente illeggibili o inutilizzabili.
Banalmente, possiamo considerare la criptazione come una codifica di parole e lettere in altri formati, che le trasformano in stringhe apparentemente prive di significato.
Esistono vari tipi di criptazione e generalmente variano in base ai formati di conversione utilizzati. Alcuni linguaggi di programmazione integrano metodi nativi per la conversione delle stringhe in altri formati (come in VB.NET che vedremo qui di seguito) così da rendere totalmente illeggibili le stringe originali.
Per poter usare una stringa codificata tuttavia, è necessario procedere alla lettura della stessa in senso inverso decriptandola. La decriptazione delle stringhe avviene in maniera contraria alla criptazione, seguendo la stessa logica e riportando la parola al significato originale.
Criptare e decriptare stringhe con Visual Basic .NET
In questa guida ti spiegherò un metodo semplice ed efficacie per la criptazione e la decriptazione di stringhe utilizzando VB.NET.
Questa tecnica è molto utile soprattutto se si fa uso di un database SQL per il salvataggio di dati personali, come password. Questo perché salvando informazioni criptate in una tabella SQL, queste non potranno essere visualizzate in chiaro come digitate dall’utente, dunque per poter essere utilizzate sarà necessario procedere ad una decriptazione manuale o automatica (ad esempio in un form di login). Il tutto si traduce in una migliore sicurezza del programma stesso e improbabile furto di dati.
Prima di iniziare, ho strutturato un form .vb per rendere la spiegazione di più semplice comprensione. Con questo form potrò mostrare chiaramente gli effetti del codice scritto, così che anche un principiante possa capire facilmente.
Il form è sviluppato in Visual Studio. Se stai imparando VB.NET con Visual Studio l’immagine successiva dovrebbe apparirti familiare.
Qui di seguito invece il codice VB.
La prima parte è dedicata alla codifica delle stringhe digitate nell’area di testo 1 (Textbox1), il risultato verrà mostrato nella Textbox2 e Textbox3 (per la successiva decriptazione).
La conversione avviene in 2 step.
- Codifica della stringa in una sequenza di Byte, restituendo una matrice con il set di caratteri risultanti.
- Conversione in stringa della matrice risultante (da variabile di tipo Bytes() a String)
Public Class Form1
Private Sub encrypt_Click(sender As Object, e As EventArgs) Handles CriptaBtn.Click
Dim str1 As Byte()
Try
str1 = System.Text.Encoding.UTF8.GetBytes(TextBox1.Text)
TextBox2.Text = Convert.ToBase64String(str1)
TextBox3.Text = TextBox2.Text
Catch ex As Exception
End Try
End Sub
Private Sub decrypt_Click(sender As Object, e As EventArgs) Handles DecriptaBtn.Click
Try
TextBox4.Text = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(TextBox3.Text))
Catch ex As Exception
End Try
End Sub
End Class
La decodifica (che avviene al click del secondo pulsante del form) funziona in modo inverso, riportando un set di bytes a un valore di tipo stringa.
Puoi riutilizzare questo codice come meglio preferisci per i tuoi progetti VB. Ti consiglio di integrarlo nelle query SQL per il salvataggio di dati sensibili che richiedono una codifica specifica. Ricorda però di eseguire la decodifica automatica nei tuoi programmi altrimenti non potrai farne uso.
Iscriviti alla nostra Newsletter qui e seguici su Facebook per aggiornamenti!
Articoli recenti:
- Recensione In Fuga. Ciclo Le Cronache dell’Ultimo Druido di Kevin Hearne
- Recensione Fool Moon di Jim Butcher
- Recensione Storm Front di Jim Butcher
- Upgrade Scheda Rete. Sostituzione della Realtek RTL8822CE
- Da jQuery a JavaScript Puro: Sfruttare il Potenziale Nativo del Web