PHP Password Hash
Genera hash bcrypt compatibili con password_hash() di PHP. Imposta il cost, genera l'hash e verifica le password. Tutto nel tuo browser.
Genera Hash (password_hash)
PASSWORD_BCRYPT(default in PHP)10
4 (veloce)14 (sicuro)
Cost 10 = ~100ms, Cost 12 = ~300ms, Cost 14 = ~1s
Verifica Hash (password_verify)
Esempio codice PHP
<?php
// Genera hash
$password = "la_tua_password";
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 10]);
echo $hash;
// Output: $2y$10$...
// Verifica password
if (password_verify($password, $hash)) {
echo "Password corretta!";
} else {
echo "Password errata!";
}
?>Domande Frequenti
Cosa fa password_hash in PHP?▼
password_hash() è una funzione PHP che crea un hash sicuro di una password usando algoritmi come bcrypt. È il metodo raccomandato per salvare password in modo sicuro nei database.
Cos'è il parametro "cost"?▼
Il cost determina quanto è computazionalmente costoso generare l'hash. Un valore più alto rende l'hash più sicuro ma più lento da calcolare. Il default è 10, che offre un buon bilanciamento tra sicurezza e performance.
Perché l'hash è diverso ogni volta?▼
Bcrypt genera automaticamente un "salt" casuale per ogni hash. Questo significa che la stessa password produce hash diversi, rendendo impossibile usare tabelle rainbow per craccare le password.
Come verifico una password hashata?▼
In PHP usa password_verify($password, $hash). Questa funzione confronta la password in chiaro con l'hash salvato e restituisce true se corrispondono.
Qual è la differenza tra $2y$ e $2a$?▼
$2y$ è il prefisso usato da PHP per bcrypt. $2a$ è il formato originale bcrypt. Sono essenzialmente equivalenti, ma PHP usa $2y$ per compatibilità.
Cos'è password_hash in PHP
password_hash() è la funzione raccomandata in PHP per creare hash sicuri delle password. Utilizza di default l'algoritmo bcrypt, che include automaticamente un salt casuale e supporta un parametro di costo configurabile.
Perché usare bcrypt
- Salt automatico: Ogni hash include un salt unico
- Resistente al brute-force: Il parametro cost rallenta gli attacchi
- Ampiamente supportato: Standard de-facto per le password
- Future-proof: Il cost può essere aumentato nel tempo
Formato dell'hash bcrypt
Un hash bcrypt ha questo formato:
$2y$10$N9qo8uLOickgx2ZMRZoMye.IjLHCR8RRxJZ1q3kMSPPB8z5EGHPVC$2y$- Identificatore algoritmo (bcrypt PHP)10$- Cost factor (2^10 = 1024 iterazioni)N9qo8uLOickgx2ZMRZoMye- Salt (22 caratteri).IjLHCR8RRxJZ1q3kMSPPB8z5EGHPVC- Hash (31 caratteri)
Best Practice
| Pratica | Raccomandazione |
|---|---|
| Cost minimo | 10 (default) |
| Cost consigliato | 12 per applicazioni critiche |
| Storage | VARCHAR(255) nel database |
| Mai fare | Hashare password già hashate |
Privacy e Sicurezza
Questo strumento esegue l'hashing interamente nel tuo browser usando la libreria bcryptjs. Le password non vengono mai inviate a server esterni, garantendo la massima privacy.