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

Classe ASP.NET C# per il controllo e il calcolo formale del Codice Fiscale

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!

Tra i vari metodi presentati nella classe ce n'è uno - quello che si aspetta un oggetto PasswordOptions come parametro - che richiede un riferimento al namespace Microsoft.AspNetCore.Identity: quel metodo è estremamente utile quando si utilizza l'ASP.NET Core Identity Framework per controllare la validità della password rispetto alle impostazioni definite in fase di startup in alcuni casi specifici, come ad esempio quando si deve controllare lato server-side la correttezza di una password inserita dai nuovi utenti in fase di registrazione. Se il nostro progetto non utilizza l'Identity Framework possiamo eliminare o commentare quel metodo e utilizzare l'overload generico che viene richiamato internamente.

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

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


Il periodo di verifica reCAPTCHA è scaduto. Ricaricare la pagina.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.