Press "Enter" to skip to content

Testare il sistema di Crittografia in una applicazione WPF

Questo articolo illustra come testare il sistema di Crittografia che abbiamo progettato e realizzato nel post precedente, mostrando come usarlo all’interno di una applicazione WPF.

Introduzione

Nel precedente articolo, disponibile QUI, abbiamo implementato in una delle nostre librerie di uso comune unaclasse helper che permette di crittografare e decrittografare stringhe. Vediamo come testarne l’uso in una applicazione WPF. Premetto che essendo lo scopo dell’applicazione testare le funzionalità di crittografia, non è da prendersi in considerazione come esempio brillante di applicazione WPF vi rimandiamo al precedente articolo relativo al test del sistema di Log  dove trovate la spiegazione dettagliata per i beginners e per chi sta passando a WPF da Winforms di quello che abbiamo modificato nelle classi fornite dal template base di Visual Studio per ottenere il nostro progetto di test.

La soluzione

test_cryptography_solution_01

Anche in questo caso, come nel precedente progetto abbiamo implementato il sistema di Log per l’applicazione, la finestra di test è molto semplice:

test_cryptography_window_01

Abbiamo due Textbox, una per inserire una stringa e crittografarla, l’altra per l’operazione contraria. E due Button che svolgono il compito richiesto. Vediamone il codice

//Codice di crittografia
try
{

	if (!this.txtVisible.Text.XDwIsNullOrTrimEmpty())
	{
		string hidden = EncDec.Encrypt(this.txtVisible.Text);
		this.txtResult.Text = "The hidden string is:" + Environment.NewLine + hidden + Environment.NewLine + this.txtResult.Text;
		this.txtStatus.Text = "The string has been hidden";
	}
	else
	{
		MessageBox.Show("You Have to write a string in the  Visible field to hide it");
	}

}
catch (Exception ex)
{
	EventLogger.SendMsg(ex);
	MessageBox.Show(ex.Message, "More information in the log file!", MessageBoxButton.OK, MessageBoxImage.Error);
}

//Codice di decrittografia
try
{
	if (!this.txtHidden.Text.XDwIsNullOrTrimEmpty())
	{
		string visible = EncDec.Decrypt(this.txtHidden.Text);
		this.txtResult.Text = "The visible string is:" + Environment.NewLine + visible + Environment.NewLine + this.txtResult.Text;
		this.txtStatus.Text = "The string has been made visible";
	}
	else
	{
		MessageBox.Show("You Have to write a hidden string in the  Hidden field to hide it");
	}
}
catch (Exception ex)
{
	EventLogger.SendMsg(ex);
	MessageBox.Show(ex.Message, "More information in the log file!", MessageBoxButton.OK, MessageBoxImage.Error);
}

La chiamata alla nostra classe helper è molto semplice, una sola riga di codice per nascondere o mostrare una stringa. Di seguito lo screencast che mostra l’interfaccia in azione.

Nel webcast, oltre a mostrare come i dati vengono crittografati e decrittografati, vediamo anche cosa succede se si verifica un errore e come viene memorizzato dal sistema di Log da noi creato nei post precedenti.

Il codice del progetto esempio è disponibile al link seguente:

Le librerie di uso comune usate dove abbiamo inserito le classi helper di crittografia sono disponibili al link seguente: