Sto per aggiungere alcune funzionalità di account utente e password al mio software, quindi sto leggendo sull'hash delle password.
Quindi la mia comprensione è che Hashing è una funzione a senso unico, e funziona così:
- Tipi di utente Bob nella casella password: "MyPassword"
- Richiesta inviata al server per Bob's Salt e hash dal database: Hash: 8912ep98as89uasdp Sale: 89asdjklasdo11jdsa
- "MyPassword" + Salt viene sottoposto a hash con la stessa funzione e confrontato con hash recuperato
- Se corrispondono, l'accesso è garantito.
- L'hash è archiviato nella memoria dell'applicazione per confronti futuri.
È esatto? Pertanto, in precedenza, è stata concessa all'utente la possibilità di fare clic sull'applicazione, ma la mia applicazione sta recuperando i dati da un server. Voglio che le cose siano sicure, quindi per ogni richiesta del servizio passo i dettagli dell'autenticazione (hash memorizzato dal punto 5) e il servizio lo confronta con l'hash del database prima di restituire un insieme di dati.
Non si conosce il tipo di hash così male come conoscere la password? Se hai trovato l'hash, potresti usare il servizio per mezzi nefasti perché tutta la password è usata per generare l'hash, e l'hash è usato per tutte le ulteriori autenticazioni.
Modifica, per chiarimenti, questa non è un'app web. Sarà un'applicazione WPF, probabilmente utilizzando il servizio WCF per parlare con un server.