Importa in che modo aggiungo un salt a una password nella mia applicazione: da aggiungendo o da in fase di preparazione ?
# 1
res = sha256(salt + password)
# 2
res2 = sha256(password + salt)
Mi è stato detto che la seconda opzione è migliore.
Questo scenario non si applica realmente all'archiviazione delle password, ma più per provare a utilizzare un hash standard per convalidare l'input dell'utente.
Il motivo per cui dati + sale sono migliori è perché rende più difficile eseguire un Attacco di estensione della lunghezza L'assunto qui è che l'utente non controlla il sale, ma controlla i dati. Se l'utente può controllare la fine dell'input in un hash, lui / lei può controllare / prevedere quale sarà l'hash. Questo link può darti un'idea migliore di come funzionano gli attacchi di estensione della lunghezza
Inoltre, non usare mai sha256 in password hash. Utilizza una sorta di funzione di derivazione chiave, come BCrypt.
Leggi altre domande sui tag cryptography passwords hash salt