3 ms·
Bcrypt uses the blowfish encryption algorithm published by Bruce Schneier in 1993. [1] I do. [1] http://bcrypt.sourceforge.net/ http://bcrypt.sourceforge.net/
by shanelja 14y ago
Bcrypt uses the blowfish encryption algorithm published by Bruce Schneier in 1993. [1]
I do.
[1] http://bcrypt.sourceforge.net/ http://bcrypt.sourceforge.net/
- pjscott 14y agoBcrypt uses Blowfish, but it is not Blowfish.
- shanelja 14y agoSorry, I didn't think my last comment needed clarifying any further - I actively use the bcrypt class for password hashing - I said Blowfish originally as I was comparing hashing algorithms.
- pjscott 14y agoBlowfish is a block cipher, not a hashing algorithm.
- shared4you 14y agoI'm no expert, but [1] says: > bcrypt is an adaptive password hashing algorithm [1]: http://codahale.com/how-to-safely-store-a-password/ http://codahale.com/how-to-safely-store-a-password/
- pjscott 14y agoBcrypt is an adaptive password hashing algorithm. Blowfish is a block cipher.
- alexkus 14y agoMost encryption algorithms (including block ciphers) can be used as a hashing algorithm for passwords. Just encrypt a common known plaintext string and use the password as the encryption key. This is exactly how various hashing schemes like UNIX's crypt() (based on DES) work. Knowing the plaintext (e.g. a set of NUL bytes) is useless as long as the encryption scheme doesn't have a weakness against known-plaintext attacks [EDIT] that allow you to recover the encryption key somehow.
- chickopozo 14y agoEncryption does not provide Integrity (hash) or authentication (mac) crypt(1) should be an example of how not to do hashing.
- alexkus 14y agoPerfectly true, but those points are irrelevant for password hashing.
- pjscott 14y agoYes, and Blowfish (or rather, a variant of it with an expensive key schedule) is used as the main building block of Bcrypt in roughly the way you describe. That doesn't mean that Blowfish is Bcrypt. I feel like such a pedantic dick for harping on this, but the distinction is worth making.
- stouset 14y agoIf you use bcrypt, there is literally no reason to go through the manual "salting" process you describe.