On 21/07/2014, at 10:04 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:

> Hi Anthony,
> 
> I want to finish and close this issue.
> 
> On Sun, Jul 20, 2014 at 9:33 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:
> 
>> Also, Deprecating crypt() without first discussing it (and having an
>>> RFC to vote on) is not cool (and has been reverted):
>>> 
>>> http://svn.php.net/viewvc/phpdoc/en/trunk/reference/strings/functions/crypt.xml?r1=333973&r2=334296
> I wrote
> 
> "Use of <function>crypt</function> is deprecated."
> 
> not
> 
> "crypt() is deprecated". I didn't mean crypt() function deprecation. If
> it's confusing, I don't mind at all to rewrite it.
> BTW, what part is wrong?
> 
> It seems we have misunderstanding each other, but the basis is the same, I
> suppose.
> 
> - crypt() will remain
> - User/developer should use password_*()
> - It's not good idea to have PHP own crypt()
> 
> The differences are E_NOTICE and workaround, it seems.
> IMO, password_hash() must raise E_NOTICE for too long password. Truncation
> without error is
> not an option for me. People write stupid code without internal knowledge.
> Adding fixed salt was
> common since crypt() was not good enough used to be. In addition, maximum
> password length
> is not decided by us, but decided by app developers. Therefore, we are
> better to provide/explain
> workaround for password_hash() limitation.
> 
> Prehash in PHP is not an option as we don't want PHP only crypt(). Prehash
> by developer is
> acceptable workaround for me. As you know, chars that are used in password
> is limited. Some
> developers even allow UTF-8 for password, structured encoding could reduce
> total number of bits
> in password hash with limited password length. Prehash with raw SHA512 will
> give us adequate
> data for PASSWORD_BCRYPT hashing regardless of password length.
> 
> Prehash ruins password_*() flexibility for sure, but there is workaround
> also. Developer may use
> timestamp to check new hash (e.g. 1024 bits hash, etc) should be used or
> not.
> 
> If we don't want such workarounds, we may enable SHA512 hash for
> password_hash() for those
> who don't want password length limit.
> 
> Regards,
> 
> --
> Yasuo Ohgaki
> yohg...@ohgaki.net


Yasuo, 

Prehashing with sha512 means it is no longer blowfish. It is now a non-vetted 
DIY algorithm. The whole point of password_hash is to avoid this type of thing, 
and should be clearly discouraged in the documentation.

It's a classic example of what not to do.

David
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to