Class PasswordUtility
Questa classe fornisce metodi statici per mettere in sicurezza le credenziali degli utenti utilizzando l'algoritmo BCrypt. BCrypt è uno standard di settore che incorpora automaticamente un "salt" casuale per proteggere dagli attacchi tramite rainbow table.
Caratteristiche principali:
- Salting Automatico: Ogni hash generato è unico, anche per password identiche.
- Adaptive Hashing: L'algoritmo è progettato per essere computazionalmente oneroso, rallentando gli attacchi brute-force.
Utilizzare questa classe durante le fasi di registrazione (per l'hashing) e di login (per la verifica).
- Version:
- 1.1.8
- Author:
- Modulink Team
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateCostruttore privato per prevenire l'istanziazione della classe utility. -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancheckPassword(String plainPassword, String hashedPassword) Verifica la corrispondenza tra una password in chiaro e un hash memorizzato.static StringhashPassword(String plainPassword) Genera un hash sicuro a partire da una password in chiaro.
-
Constructor Details
-
PasswordUtility
private PasswordUtility()Costruttore privato per prevenire l'istanziazione della classe utility.Lancia un'eccezione se invocato accidentalmente (anche tramite reflection), garantendo che la classe sia utilizzata solo tramite i suoi metodi statici.
-
-
Method Details
-
hashPassword
Genera un hash sicuro a partire da una password in chiaro.Questo metodo utilizza
BCrypt.gensalt()per generare un salt casuale e applicarlo alla password. Di conseguenza, chiamando questo metodo più volte con la stessa password, si otterranno hash differenti ogni volta.Da utilizzare prima di salvare la password nel database (es. in fase di registrazione). La stringa risultante include il salt e le informazioni sull'algoritmo necessarie per la verifica futura.
- Parameters:
plainPassword- La password in chiaro inserita dall'utente.- Returns:
- Una stringa contenente l'hash cifrato della password (lunghezza tipica 60 caratteri).
-
checkPassword
Verifica la corrispondenza tra una password in chiaro e un hash memorizzato.Questo metodo estrae il salt dall'hash memorizzato e lo utilizza per hashare la password in chiaro fornita, confrontando poi i risultati. Gestisce internamente la complessità del confronto sicuro contro attacchi temporali (timing attacks).
Da utilizzare in fase di autenticazione (Login).
- Parameters:
plainPassword- La password in chiaro inserita dall'utente al momento del login.hashedPassword- L'hash della password precedentemente generato e recuperato dal database.- Returns:
truese la password in chiaro corrisponde all'hash memorizzato,falsealtrimenti.
-