2012-08-08 2 views

risposta

7

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:

+0

Buon punto, dovresti decomprimerli in esadecimale ogni volta che hai estratto il record dal database. – Xeoncross

+0

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

+0

Ho anche riscontrato un problema in passato con un DB malridotto che utilizzava campi binari, richiesto tanto lavoro per farlo ripristinare. – Leigh

4

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?"

+0

Il binario è super fastidioso se non è codificato correttamente, e come ulteriore downside, non può essere visualizzato o copiato facilmente. – tadman