Re:How I became a password cracker
by shanelja on Monday March 25, 2013 @01:42AM
(#5435674)
Sorry, 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.
[ Parent
| on HN ]
Blowfish is a block cipher, not a hashing algorithm.
Re:How I became a password cracker
by shared4you on Monday March 25, 2013 @04:11AM
(#5435945)
I'm no expert, but [1] says:
> bcrypt is an adaptive password hashing algorithm
Bcrypt is an adaptive password hashing algorithm. Blowfish is a block cipher.
Most 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.
Yes, 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.
Re:How I became a password cracker
by chickopozo on Monday March 25, 2013 @05:44AM
(#5436223)
Encryption does not provide Integrity (hash) or authentication (mac)
crypt(1) should be an example of how not to do hashing.