Ho fatto molte ricerche su questo argomento.
Prima delle ricerche
Ho scoperto che alcune persone suggeriscono che nascondere il sale non è importante: link
Ma anche questo articolo suggerisce di utilizzare hash con chiave in cui devi nascondere un tipo di chiave.
Da diverse fonti ho appreso che il modo migliore per hash è utilizzare bcrypt .
Descrizione della situazione
stringa segreta è una stringa casuale creata dal seguente codice: bin2hex(openssl_random_pseudo_bytes(64));
L'utente accede al sito Web, gli abbiamo fornito una stringa che contiene sia stringa segreta che il sale . E memorizziamo la versione hash di stringa segreta usando il sale ma non memorizzando il sale.
La prossima volta, l'utente accede al sito web e copia & incolla stringa segreta insieme a salt e lo verifichiamo mediante la funzione hash utilizzando quelli .
Domanda
Sono in grado di nascondere Salt dandogli all'utente di memorizzarlo insieme a stringa segreta . In questo caso l'hacker sarà in grado di utilizzare l'attacco a forza bruta? Quale sarà il vantaggio di nascondere il sale?
it is not a password, so user shouldn't remember it, we just need to find a way to prevent attacker to get the original string that website gave to the user