Quale dovrebbe essere l' $cost
ideale in questo caso per prevenire l'attacco brute force anche con ASIC o FPGA
$cost = '06';
$secret_key = bin2hex(random_bytes(64));
$store_data = crypt($secret_key, '$2a$.$cost.$'.bin2hex(random_bytes(16)).'$')
Scenerio
L'azienda dà all'utente $secret_key
che viene generato dal codice precedente per consentire l'accesso a ritirare denaro e questa chiave segreta non dovrebbe mai essere indovinata dall'hacker.
$store_data
è la stringa che abbiamo archiviato nel nostro database.
Quindi, se un utente malintenzionato accede al database e apprende la variabile $store_data
, non dovrebbe essere in grado di ottenere $secret_key
.
Ho usato l'algoritmo bcrypt per hash ma non sono sicuro che $cost = 6
sia abbastanza sicuro in questo caso.
Nota:
Non ho usato password_hash
perché in futuro convertirò tutto il codice in Java e in Java non ci sarà l'equivalente di password_hash