Potrei usare un singolo hash per tutte le password ma non mi sembra molto sicura come cosa...
Quando il salt è lo stesso per tutti (statico) viene anche detto pepper.
ChatGPT consiglia di salvare gli hash in un file cifrato, però volevo sapere se qualcuno più navigato sa consigliarmi qualche tecnica migliore per la gestione delle password.
ChatGPT dice assurdità, il salt non è un elemento segreto, puoi salvarlo tranquillamente insieme al digest finale della password o in un apposito campo nel database.
Precisando che non sono "superflui", a cosa servono effettivamente salt e pepper in crittografia? Il pepper serve a rendere inutili le rainbow table generiche per un dato algoritmo di hash, però non ti protegge nel caso che il cracker prepari una rainbow table dedicata al tuo sito con il pepper corretto. Il salt, essendo dinamico e cambiando per utente, rende totalmente impossibile costruire rainbow table, che il salt sia pubblico o meno poco importa. Più importante è come leghi il salt alla password: non dovresti concatenarlo, meglio usare algoritmi HMAC e se vuoi rallentare ancora di più tentativi di cracking brute force (e dizionario) puoi usare standard come PBKDF2 o scrypt.