2011-09-22 17 views

risposta

11

È un campo varchar normale (40 caratteri) ma se si desidera impostarlo in modo più sicuro, è necessario utilizzare sale.

http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/

Aggiornamento:

ATTENZIONE: hash della password senza sale è molto debole! Non dovresti mai usarlo !!

password salatura è il buon modo per farlo: password salting

come avvertita da PST:

  • utilizzando SHA-1 e il sale è l'approccio più ingenuo, ma abbastanza bene sicuro.

  • utilizzando bcrypt:

è l'approccio più sicuro :) perché usare la velocità al fine di renderlo più sicuro, bfish è una funzione di hash costruita intorno al metodo di cifratura Blowfish. (Sembra che esista anche una duplice e dovrebbe essere la versione "moderna" di blowfish).

E 'una versione che utilizza una catena di SHA-1 quindi è una soluzione intermedia, ma che permette di impostare la velocità alle proprie esigenze. In effetti la velocità rende più debole la tua sicurezza.

+2

Inoltre, utilizzare una funzione diversa ("più computazionalmente dispendiosa") come "bcrypt" e/o utilizzare un hash HMAC. –

+2

Sì, sicuramente sale i tuoi hash. Inoltre, se usi un sale diverso per ogni utente, aiuti a prevenire gli attacchi di Rainbow Table: http://en.wikipedia.org/wiki/Rainbow_table – Mac

+0

@pst: potresti fornire maggiori dettagli? :) – ykatchou

0

La maggior parte delle persone salva l'hash come suggerito. È abbastanza sicuro e semplice, rendendolo una buona scelta.

Si noti che tutti gli hash possono essere fessurati, quindi qualsiasi hash è migliore di nessuno e SHA è abbastanza forte.

+2

Questo è peggio di così: senza un sale un banale attacco da tavolo arcobaleno può facilmente romperlo. Inoltre, un singolo SHA è meno che ideale per le password perché * può essere calcolato estremamente rapidamente *. ('bcrypt' e HMAC possono aiutarti a risolverlo.) –

+0

hmac è utile per i dati più piccoli di un blocco? – ykatchou

+0

@ykatchou Spiacenti, il commento è leggermente errato. [HMAC-SHA1] (http://en.wikipedia.org/wiki/HMAC) non è progettato per "aiutare" con la velocità, ma ciò che può fare è aggiungere un altro livello di protezione con una chiave server-secret. –

2

È anche possibile utilizzare la funzione AES_ENCRYPT() integrata in mysql per una maggiore sicurezza. Link here

V'è anche un buon modo da qui che spiega ulteriormente: link

2

The manual contiene una buona spiegazione di ciò che tipo di colonna da utilizzare.