Nicolas:

On Thu, Sep 13, 2012 at 7:33 AM, Nicolas Grekas <
nicolas.grekas+...@gmail.com> wrote:

> Hi,
>
> What do you think about adding PHPass compatibility to the password hashing
> API ?
> We could add two new algos : PASSWORD_MD5 and PASSWORD_EXT_DES.
> That way, existing password crypted using phpass ($P$*, $H$*, _* prefix)
> could be verified using the password hashing API.
> PHPass implementation could then be merged with
> https://github.com/ircmaxell/password_compat to provide a forward
> compatible PHP Implementation for users without PHP5.5.
>

The way password_verify is implemented, it can use any crypt(3) generated
hash for verification. It's just a proxy to crypt() with a few extra checks
(it won't verify STD_DES, as it's too short).

With respect to adding those algorithms for generating hashes, I'm 100%
dead set against it. Both are significantly weaker algorithms than BCrypt.
I'd rather have this API only contain strong algorithms.

As far as merging PHPASS, I don't really see the reason either. It's a
weaker algorithm (by a long shot). And it's not really tested as an
algorithm outside of the PHP community. For versions < 5.3, it's better
than what's trivially available (though PBKDF2 + SHA2 is significantly
better, and easily implementable in 5.2). But for 5.3+ there are a number
of algorithms available that are significantly stronger (SHA256, SHA512,
BCRYPT).

The last thing I want to happen is to give the user the ability to make a
bad choice without knowing any better (which is why BCRYPT is the only
option so far).

If you want to support PHPASS passwords, just write a quick wrapper that
checks the prefix, and if it's PHPASS, hash it with PHPASS, then upgrade
the hash. It's not that difficult to implement...

Anthony

Reply via email to