Io di solito lo memorizzo in numero esadecimale ma mi rendo conto che potrei risparmiare metà dello spazio se lo memorizzo in binario all'interno di MySQL. Ci sono dei problemi di cui dovrei essere a conoscenza se decido di salvarlo in binario?L'hash della password deve essere memorizzato in numero binario o esadecimale?
risposta
Quante password ci si aspetta di memorizzare? La metà dello spazio significa davvero tanto per te?
Probabilmente stai rappresentando le password in forma esadecimale nella tua applicazione, quindi memorizzarle in binario aggiunge un ulteriore livello di complessità ed elaborazione di sovraccarico quando esegui qualsiasi operazione su quelle password.
La mia opinione è che dovresti archiviarli in un modo che è conveniente per te, piuttosto che uno che ti risparmia piccole quantità di spazio.
Edit:
Andando a fare alcune ipotesi e cogliere l'occasione per aiutare un po 'oltre.
Dato che le password sono esadecimali, assumerò che tu non stia usando crypt
, e se non lo sei, dovresti esserlo. Nella peggiore delle ipotesi, stai usando md5 ... e dio sta uccidendo i gattini.
C'è già un sacco di domande e risposte su bcrypt on stack overflow, quindi non mi occuperò più delle informazioni qui.
La domanda SHA512 vs. Blowfish and Bcrypt è un buon punto di partenza.
hanno anche una lettura di un paio di post di blog @ircmaxell s' sul tema:
Dal punto di vista dell'usabilità, è probabilmente migliore per conservare l'hash come esadecimale. Memorizzandoli in formato binario è necessario un ulteriore passaggio per confrontare un input di testo normale con la password memorizzata. Ha anche il potenziale di aggiungere uno strato di confusione a tutti coloro che lavorano sul tuo progetto dopo che ti sei trasferito. "Perché questa password è memorizzata in binario?"
Il binario è super fastidioso se non è codificato correttamente, e come ulteriore downside, non può essere visualizzato o copiato facilmente. – tadman
Buon punto, dovresti decomprimerli in esadecimale ogni volta che hai estratto il record dal database. – Xeoncross
Oppure impacchetta la password che desideri confrontare con l'hash salvato. Non penso, è molto difficile. Tuttavia, non penso nemmeno che non ne valga la pena. – KingCrunch
Ho anche riscontrato un problema in passato con un DB malridotto che utilizzava campi binari, richiesto tanto lavoro per farlo ripristinare. – Leigh