Domanda

Attualmente sto avendo am divertire dibattito con un amico, e noi semplicemente non può essere d'accordo sul metodo migliore per memorizzare le password salate in un database. Le due opzioni sul tavolo sono:

  • Memorizzazione l'hash e il sale insieme come una stringa, delimitata da qualche personaggio concordato (per esempio: "... E69B4A103 598D $ 59FBA6")
  • Memorizzazione l'hash e il sale in lunghezza fissa campi binari separati

Ovvio vantaggio al primo sta avendo solo per recuperare un campo, ma al costo del campo di essere significativamente più grande (in particolare quando si utilizza SHA512 o una grande sale), e le prestazioni rilasciato manipolazione di stringa tardi lungo la strada nell'applicazione .

Seconda opzione ha il vantaggio di essere molto più piccolo, ma a costo di una query leggermente più complesso per recuperare due campi, non uno.

La nostra domanda è:? Quale opzione renderebbe più senso per un database di grandi dimensioni in cui le prestazioni è un fattore chiave

È stato utile?

Soluzione

There are 2 bits of information. This means 2 fields. It is that simple.

In practical terms, selecting 2 columns is zero extra complexity. Having to read a large field to parse one bit out is unnecessary complexity and performance overhead.

A couple of SO questions on storing salts with hashes

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top