Criptare e Decriptare Stringhe con VB.NET

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.

form vb di codifica e decodifica

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.

prova criptazione e decriptazione

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:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

CAPTCHA