Sto lavorando a una partita multiplayer usando WebSockets. Ho deciso che tutti i dati dell'utente verranno memorizzati sul client, eliminando la necessità di autenticazione tramite password ecc.
LocalStorage
'save' -> '{"key":"value", "key2":"value2"}'
'hash' -> '<hash of save>'
L'idea è di memorizzare i dati dell'utente in testo semplice, ma anche di memorizzare un hash che può essere calcolato solo dal server (eseguendo Node.JS). Il client invierà sia save
che hash
al server da verificare e caricato in memoria per questa sessione.
Ora la mia domanda è:
- Se utilizzo SHA256 per cancellare tutti i dati di
save
, come posso impedire a un utente di generare il proprio hash per i dati? - Quindi, supponendo che la risposta alla parte 1 sia "sale",) l'uso di sale mi terrà al sicuro o può essere calcolato? (Posso rendere il sale parzialmente diverso per ogni utente)