Skip to main content

PasswordCheck – Classe C# per calcolare il livello di sicurezza delle password

Diversi anni fa ho sviluppato questa classe per calcolare il livello di sicurezza delle password inserite dagli utenti in varie circostanze, come ad esempio durante la registrazione di un nuovo account all’interno di una applicazione web. Poiché a distanza di tempo continuo a utilizzarla con regolarità ho deciso oggi di condividerla all’interno di questo post, sperando che possa essere utile anche a qualcun altro.

La classe può essere utilizzata in due modi:

  • Attraverso il metodo generico GetPasswordStrength, che calcola il livello di sicurezza (strength) di una qualsiasi password attraverso una serie di controlli basati sui classici fattori: lunghezza minima, presenza di lettere maiuscole/minuscole, numeri e/o caratteri speciali.
  • Attraverso il metodo IsStrongPassword, che risponde a un criterio più specifico e personalizzato.

Il primo metodo di utilizzo è particolarmente indicato in tutti i casi in cui non sono previste delle policy di controllo specifiche, mentre il secondo si rende necessario ogniqualvolta abbiamo dei controlli obbligatori da effettuare. Personalmente io finisco spesso per utilizzare entrambi: il primo per mostrare all’utente la forza della propria password, il secondo – o una sua implementazione leggermente diversa utilizzando gli helper methods inclusi – per controllare i requisiti minimi previsti e/o richiesti dal committente.

Tutti i metodi utilizzati sono spiegati all’interno della classe, quindi non c’è molto altro da dire: se la classe vi è di qualche aiuto, sentitevi liberi di lasciare un feedback nella sezione “commenti” in basso!

Approfondisci

Visual Studio 2017, VS2015, VS2013, VS2012, VS2008, VS2005, VS2003 and VS6 Offline Installer & immagini ISO per il download (tutte le versioni)

Qualche mese fa avevamo pubblicato un articolo informativo contenente un elenco di Tutte le versioni di Microsoft Visual Studio, comprensive di Build Number, Version ID e path predefiniti, da VS6 fino a VS2017. Per accontentare tutti quelli che da quel momento ci hanno scritto chiedendoci i link di download per le immagini ISO delle suddette versioni, abbiamo compilato questa lista non esaustiva che contiene la maggior parte dei link diretti ufficiali alle versioni trial e community delle varie incarnazioni di Visual Studio: anche questa volta abbiamo fatto del nostro meglio per spaziare dal recentissimo VS2017 al primo, glorioso VS6… senza altrettanta fortuna, almeno per il momento!

Chiunque voglia aiutarci nell’impresa segnalandoci link aggiuntivi (o indicando il malfunzionamento di quelli esistenti) può farlo nel solito modo, ovvero aggiungendo un commento a questo articolo. Attenzione, però: per ovvi motivi possiamo accettare unicamente link che puntano a siti ufficiali gestiti da Microsoft.

IMPORTANTE: E’ opportuno sottolineare che non si tratta in alcun modo di software pirata: quelli che seguono sono tutti Link ufficiali Microsoft accessibili pubblicamente e recuperati da Google, StackOverflow e siti/forum di supporto Microsoft.

Approfondisci

Come verificare se un file eseguibile EXE è a 32 bit (x86) o a 64 bit (x64)

Qualche giorno fa in ufficio abbiamo avuto la necessità impellente di controllare se un file eseguibile piuttosto vecchio, ma ancora utilizzato su uno dei nostri server Win2012 a 64bit in produzione, fosse stato compilato per processori di tipo x86 or x64. Si tratta di una informazione normalmente ben nota fin dal momento della compilazione: tuttavia, poiché lo sviluppatore autore della stessa non lavora più con noi e l’informazione non era recuperabile né dal nome file né dalla cartella di installazione, siamo stati costretti a determinarlo in un altro modo.

Per risolvere il problema abbiamo quindi fatto ricorso all’utilissimo strumento Sigcheck di SysInternals, disponibile gratuitamente a questo indirizzo.

Il programma, una volta scaricato e scompattato, può essere utilizzato in modo estremamente semplice. E’ sufficiente lanciarlo dal prompt dei comandi avendo cura di specificare il percorso completo del file da verificare:

Approfondisci

Come creare file e archivi ZIP per il download con ASP.NET MVC e C#

Durante lo sviluppo di una applicazione web con ASP.NET MVC e/o ASP.NET Core può capitare di avere l’esigenza di dover creare un archivio ZIP all’interno di un Controller, ad esempio per consentire ai propri utenti di effettuare il download di più file all’interno di una singola request.

Fino a non molto tempo fa il modo migliore per implementare questa feature era ricorrere a librerie esterne, come le note SharpZipLib, DotNetZip e via dicendo… a meno di non voler ricorrere al namespace System.IO.Compression, a patto però di rinunciare a molte delle comodità garantite dalle soluzioni sopracitate.

A partire dal .NET Framework 4.5 è stata finalmente introdotta anche una soluzione nativa che, almeno nelle sue funzionalità di base, non ha nulla da invidiare alle librerie di terze parti più diffuse: si tratta della classe ZipArchive, new-entry del namespace System.IO.Compression, che consente di creare archivi in modo estremamente semplice e veloce.

Di seguito un veloce esempio che utilizza un MemoryStream e un paio di byte array contenenti i dati di altrettanti file da comprimere:

Approfondisci

WannaCry: come controllare se il proprio sistema è protetto con uno script PowerShell

Se vi siete imbattuti in questo articolo probabilmente sapete già tutto sul Ransomware noto come WannaCry o WannaCrypt, del quale abbiamo già avuto modo di parlare in questo articolo che contiene una lista completa di tutti gli aggiornamenti che è opportuno effettuare (per tutte le versioni di Windows) per immunizzare il proprio sistema.

Quello che però forse ancora vi manca è un modo efficace per controllare se il vostro PC (o i vostri PC aziendali) sono effettivamente immuni. A tale scopo forniamo il seguente script Powershell, distribuito all’interno di questo articolo del community site del noto software di IT monitoring SpiceWorks (si ringrazia CarlosTech per il preziosissimo contributo):

Approfondisci

Close