2012-01-27 8 views
14

Ho letto circa bcrypt (prospettiva applicativa). Pensando di usarlo per memorizzare le password sul mio sito.Bcrypt è utilizzato per l'hashing o la crittografia? Un po 'di confusione

Su alcune cose che ho letto suggerisce o modi:

  • esempio 1: Bcrypt è un'utilità di crittografia file multipiattaforma da bcrypt
  • ad es. 2: bcrypt è un algoritmo di hashing della password adattativo che utilizza la pianificazione dei tasti di Blowfish, non un algoritmo di crittografia simmetrica. da How To Safely Store A Password
  • bcrypt è una funzione adattativa crittografica di hash per le password progettato da Niels Provos e David Mazières, sulla base della cifra Blowfish: da bcrypt wiki

Che cosa è esattamente Bcrypt?

+0

Stack Overflow è un sito per domande di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non riguarda la programmazione o lo sviluppo. Vedi [Quali argomenti posso chiedere qui] (http://stackoverflow.com/help/on-topic) nel Centro assistenza. Forse [Cryptography Stack Exchange] (http://crypto.stackexchange.com/) o [Information Security Stack Exchange] (http://security.stackexchange.com/) sarebbe un posto migliore per chiedere. – jww

+1

@jww dopo 5 anni questa domanda non è stata contrassegnata come off-topic. – NaveenDA

risposta

16

E 'sia :)

La maggior parte del tempo in cui la gente parlare di bcrypt, stanno parlando la adaptive hash algorithm, ma è anche il nome di un unrelated file encryption utility.

Entrambi sono basati sul codice Blowfish.

+0

Quindi, intendi dire che userò, l'algoritmo hash adattivo quando uso bcrypt per memorizzare la password? – ThinkingMonkey

+0

@ThinkingMonkey. Sì, a condizione di scegliere quello giusto. Ho aggiunto (i tuoi) link alla mia risposta per rendere più chiara la differenza. – PaulG

+0

Bello. In realtà ho gli stessi link menzionati nella domanda. :) – ThinkingMonkey

7

software di crittografia Bcrypt utilizza l'algoritmo Blowfish progettato da Bruce Schneier nel 1993. [1]

La funzione di hash bcrypt è proprio questo, una funzione di hash . Non esegue crittografia, hash. È basato sul codice Blowfish ed è considerato una buona cosa perché è possibile effettuare lo make it slower over time.

Da Wikipedia:

Questo non è crittograficamente significativamente più forte rispetto allo standard calendario chiave Blowfish, ma il numero di giri rekeying è configurabile; il processo di hashing può quindi essere fatto arbitrariamente a lento, il che aiuta a dissuadere gli attacchi di forza bruta sull'hash o sul sale.

Per quanto riguarda la memorizzazione delle password sul vostro sito, si dovrebbe essere in crittografia delle password prima di hash.

Solo dopo averli cifrare con qualche algoritmo di crittografia (ad esempio Blowfish, Rijndael/AES) si dovrebbe usare bcrypt di hash delle password cifrati, e memorizzare la password hash .

Per ulteriori dettagli sull'implementazione della sicurezza della password, vedere la risposta in alto a this question.

+0

Grazie per le informazioni. – ThinkingMonkey

+2

Il suo nome è "Schneier", non "Schneider". –

+8

Per nitpick :) non è necessario crittografare prima dell'hashing. – PaulG

3

bcrypt è una funzione chiave di derivazione per le password

anche differenza tra hashing (usato da bcrypt) e la crittografia in parole semplici sarà -

1) dati crittografati possono essere decifrati tramite la chiave privata. 2) L'hashing è un modo che è se il testo in chiaro è irreversibile, quindi più sicuro. L'unico modo per garantire è ridisporre il testo in chiaro e confrontarlo con dati precedentemente sottoposti a hash per l'uguaglianza.