Qual è il miglior algoritmo consiglia di utilizzare per cifrare le password in php/mysqlalgoritmo migliore hash da utilizzare in PHP/MYSQL
risposta
Vorrei usare la funzione del php crypt()
perché non ci sarà comunque la password per essere decifrati . Quando ho bisogno di controllare la password neo entrato devo solo per cifrare che uno e confrontare i due risultati
-1 completo non-sense: secondo il manuale: 'crypt() restituirà una stringa hash usando l'algoritmo standard basato su UN o algoritmi alternativi che potrebbero essere disponibili sul sistema .' – Johan
@Johan È possibile modificare facilmente la funzione di hash da utilizzare, il sale e il numero di cicli con 'crypt()'. –
@Daniel Jonsson +1 Il frammento di documentazione che Johan menziona lo dice anche lui! La maleducazione non dovrebbe essere il benvenuto qui. – allyourcode
SHA-512 con un sale è un buon modo & per hash una password. Se questo non è disponibile hai SHA-1 ma la sicurezza è considerata un po 'debole in questi giorni, specialmente se non usi un sale.
Stai dicendo che SHA-512 è peggiore o meno sicuro? –
Beh, ovviamente SHA-512 è ancora più forte, ora sei solo un asino intelligente. – TravisO
Non sarei d'accordo. Leggi questo articolo: http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html – miki725
Ci sono molte opzioni - vedere the php hash docs per l'elenco completo.
La velocità non è un vantaggio, quindi usare sha-512 o idromassaggio è una buona idea. Non è necessario memorizzare l'intera lunghezza dell'hash in mysql, ad esempio è possibile eseguire l'hash di qualcosa come whirlpool, che è lungo 128 caratteri e memorizzare solo i primi 64 caratteri per l'efficienza.
Troncare un hash è un pessimo consiglio, ed è assolutamente inutile, dato che sha256 restituirà 64 cifre esadecimali, ed è progettato per quella lunghezza. Troncare qualsiasi hash ridurrà significativamente la sicurezza! Inoltre stai scrivendo circa 128 caratteri - 0-9, a-f. Si tratta di una memorizzazione inefficiente di valori binari come l'hash, in quanto occupa il doppio dello spazio, quindi il campo binario a 64 bit memorizzerebbe i 128 caratteri e non è necessario troncare nulla. Sebbene potrebbe essere meglio per la manutenzione avere hash in un formato più leggibile, è possibile utilizzare la crittografia di base64. – marianboda
@praksant Non sono un esperto di crittografia, ma mi sembra che archiviare i caratteri 32-96 di un hash whirlpool sia abbastanza buono per la maggior parte delle applicazioni. Aumenta le possibilità che un attaccante trovi una collisione, ma comunque, sarebbe molto meglio di SHA1/MD5, che ancora molte persone usano. Quale miglioramento sarebbe usare base64? – JAL
Non sono nemmeno un esperto di crittografia, ma se c'è un modo per archiviare l'intero hash nello stesso numero di byte, perché qualcuno dovrebbe sacrificare la sicurezza per niente? Non sto dicendo che non sia abbastanza sicuro per molte applicazioni. Può essere. E la codifica base64 memorizzerà i dati binari a 6 bit per byte, la forma esadecimale solo 4 per byte. Quindi con base64 avresti bisogno di 86 byte per archiviare hash a 512 bit invece di 128 byte. Nel file binario grezzo sarebbe 64 byte. – marianboda
Il pensiero corrente è quello di utilizzare un algo hash SLOW. Questo fa sì che i "forzuti brutali" impieghino molto tempo a generare tutti questi tentativi.
Molto ancora più intelligente è tenere traccia delle richieste URI tramite IP e bloccare con spiegazione quando 5 tentativi di accesso falliscono dallo stesso IP in un dato periodo di 5 minuti.
La banca più intelligente ha ancora da fare # 1, # 2 e richiede anche un passaggio secondario una volta che il primo ha superato il test. Il triplo fallimento alla seconda sfida determina il blocco.
Il livello 3 di sicurezza è molto, molto forte. Probabilmente troppo forte.
Un chiarimento su ciò che hai scritto. Fai sembrare che il # 2 sia "migliore" del # 1 ... ma sono completamente indipendenti ed entrambi sono necessari. Non hai l'hash per prevenire attacchi brute-force contro il tuo server. Quel tipo di attacco a forza bruta non "vede" mai l'hash. Quindi, per questo, fai solo l'articolo 2. Hai cancellato le tue password per impedire alle persone che hanno accesso al DB o ottenere un dump di esso di essere in grado di forzare in modo economico le password degli utenti a loro piacimento. –
maggior parte delle persone sono ormai d'accordo SHA non è il modo migliore per andare, dal momento che questi algoritmi sono affatto male resistere agli attacchi di forza bruta. È meglio usare bcrypt, scrypt o PBKDF2 see this Q&A.
Miki725 solleva punti interessanti con the Matasano article Mentre sha512 è meglio di md5 crittografia, bcrypt li batte tutti, perché è più lento e quindi costa di più per attaccare. Più lento non è male internet è lenta già, è milioni di volte più lento di cache della CPU, e migliaia di volte più lento di disco. Effettuare i controlli della password richiede 200 ms anziché 1 ms per il calcolo non ha intenzione di infastidire alcun utente.
più importante non dimenticare di usare un nonce che è casualmente generato e diverso per ogni utente.
bcrypt sta per essere sub-ottimale in PHP perché PHP è interpretato e questo dà l'attaccante qualche vantaggio, ma c'è un modo per in this stackoverflow article
- 1. Algoritmo di hash per l'implementazione della tabella hash
- 2. Migliore logica/algoritmo colorazione immagine
- 3. Algoritmo di funzione hash 8 byte leggero
- 4. Algoritmo Hash più veloce in Java per le stringhe
- 5. Algoritmo di hash della chiave shardb shard
- 6. Libreria UI migliore da utilizzare con jQuery
- 7. PLS-DA algoritmo in pitone
- 8. Algoritmo di hash diverso per provider di appartenenze ASP.NET?
- 9. Algoritmo di compressione migliore per XML?
- 10. Algoritmo migliore per svanire una winform
- 11. Quando utilizzare Struct anziché Hash in Ruby?
- 12. Qual è il modo migliore per copiare in profondità un hash di hash in Perl?
- 13. Algoritmo hash di Microsoft Symbol Server/Local Cache
- 14. È così che si impagina o c'è un algoritmo migliore?
- 15. Rails oggetto da hash
- 16. Algoritmo hash con output alfanumerico di max. 20 caratteri
- 17. Algoritmo per hash/crc del multiset non ordinato
- 18. Quale specifico algoritmo di hash restituisce MessageDigest.getInstance ("SHA")?
- 19. Il modo migliore per cercare milioni di hash sfocati
- 20. Analizzatore cross-language migliore da utilizzare con l'indice lucene
- 21. Il migliore CMS da utilizzare su Windows Azure
- 22. modo migliore per utilizzare Guava
- 23. Quale è l'IDE migliore da utilizzare con Yii Framework
- 24. Algoritmo per piscina da hockey
- 25. Migliore funzione di hash per identificatori misti numerici e letterali
- 26. Algoritmo per determinare la squadra migliore e la formazione?
- 27. Come implementare un algoritmo della finestra scorrevole migliore?
- 28. Come inserire hash in hash in Perl
- 29. Algoritmo migliore per trovare i bordi (poligono) dei vertici
- 30. Estratto tag hash da stringa
di hashing e crittografia non sono la stessa cosa. Hai bisogno di recuperare la password originale? –
Basta memorizzare le password nel database in un formato illeggibile – Gatura
qui è un buon articolo: http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-qualsiasi cosa- -to-know-about-s.html – miki725