Hai ragione. Salting rende davvero più difficile l'hacking delle password per le password non banali, ma se alcuni utenti usano password comuni, possono ancora modificare la password con la forza bruta alcune migliaia di volte.
Se il sale è pubblico / memorizzato insieme, come il tuo caso, è solo usato per prevenire la ricerca di hash delle password pre-calcolate, cioè la tabella dell'arcobaleno.
Quindi, se per algoritmi simili nelle applicazioni web, suggerirei potrebbe anche anteporre una chiave segreta specifica dell'applicazione specifica alla password degli utenti, prima di eseguire l'hashing tramite l'algoritmo salato. Ovviamente se la chiave segreta dell'app è trapelata, allora questo miglioramento della sicurezza è sparito. Pertanto, memorizzo quella chiave segreta nel codice per separarla dal database degli hash delle password. (Questo è irraggiungibile nel file shadow di Linux)
Ulteriore commento : il punto principale dell'aggiunta della "chiave segreta" extra (o pepe) è: anche l'hash di una password semplice non può essere la forza bruta solo poche migliaia di volte per spezzarla (loro sono difficili come password complicate per la forza bruta), dato che l'hacker conosce solo l'hash della password, ma non è ancora in grado di vedere la chiave segreta nel codice. (Nel frattempo, non protegge i tentativi di forza bruta del sito Web online, ma protegge il tentativo offline di crackare solo l'hash stesso)