Edit report at https://bugs.php.net/bug.php?id=55717&edit=1

 ID:                 55717
 Comment by:         ni...@php.net
 Reported by:        gelliott000 at yahoo dot ca
 Summary:            Crypt returns "*0" instead of hashed string.
 Status:             Open
 Type:               Bug
 Package:            *Encryption and hash functions
 Operating System:   FreeBSD 7.2
 PHP Version:        5.3.8
 Block user comment: N
 Private report:     N

 New Comment:

@tyrael: If the salt starts with an underscore it's an Extended DES hash, not a 
standard DES hash.

The actual problem is that this should give (*0) everywhere as far as I can 
see: PHP fills the salt up to max salt length with '$' and this isn't a valid 
Extented DES count or salt.

The relevant code is here: 
http://lxr.php.net/xref/PHP_5_3/ext/standard/crypt_freesec.c#638


Previous Comments:
------------------------------------------------------------------------
[2011-09-18 21:27:54] tyr...@php.net

it is not about the length, and not about having underscore in the salt, as 
then 
both '_a' and 'a_' should produce *0, but it isn't:
crypt("veronica", "a_") returns  'a_CzfMnN285eI'
I also tried calling crypt with longer salt:
crypt("veronica", "aaaaaaaaaaaaaaaa_");
produces "aaN/k77JE/bN6" on both 5.2.17 and 5.3.8
but crypt("veronica", "_aaaaaaaaaaaaaaaa"); differs:
"_aaaaaaaadgbQ2NJa866" for 5.3.8
"_aeK.1tgvo.I." for 5.3.8

so it seems that _ only cause problems, if it is in the first position of the 
salt.

ps: I also tried replacing the starting undescore with other "special" 
characters(^,!,#), they produced the same result on both 5.2.18 and 5.3.8, so 
it 
seems that it happens only with underscore.

could someone have another look?

------------------------------------------------------------------------
[2011-09-17 23:53:36] gelliott000 at yahoo dot ca

I'm sorry to be persistent, but I don't think that this is a problem with the 
salt length.

To demonstrate, I have run crypt on several platforms with several versions of 
PHP.  I ran crypt with the same string, but a different salt that varied by 
just one character:

1st case:  crypt("veronica", "aQ");
2nd case:  crypt("veronica", "_Q");

The first case produces the same hashed string in all versions and platforms.
The second cases produces a proper hashed string with the 5.1 and 5.2 variants, 
but not so with most of the 5.3 variants.

Results for 1st case [crypt("veronica", "aQ")]:
PHP 5.1.6 (cli) / RHEL Linux 2.6.18:  aQW/7xmAl9Wk.
PHP 5.2.17 (cli) / RHEL Linux 2.6.18:  aQW/7xmAl9Wk.
PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli) / Linux :  aQW/7xmAl9Wk.
PHP 5.3.0 (cli) / RHEL Linux 2.6.18: aQW/7xmAl9Wk.
PHP 5.3.4 (cli) / RHEL Linux 2.6.18: aQW/7xmAl9Wk.
PHP 5.3.6 (cli) / RHEL Linux 2.6.18: aQW/7xmAl9Wk.
PHP 5.3.8 (cli) / Ubuntu Linux (2.6.32):  aQW/7xmAl9Wk.
PHP 5.3.8 with Suhosin-Patch (cli) / FreeBSD 7.2 :  aQW/7xmAl9Wk.


Results for the 2nd case [crypt("veronica", "_Q")]:

PHP 5.1.6 (cli) / RHEL Linux 2.6.18:  _Q9SLgD4qEEgM
PHP 5.2.17 (cli) / RHEL Linux 2.6.18:  _Q9SLgD4qEEgM
PHP 5.3.2-1ubuntu4.9 with Suhosin-Patch (cli) / Linux :  _Q9SLgD4qEEgM
PHP 5.3.0 (cli) / RHEL Linux 2.6.18: _Q$$$$$$$qK1ZM2vrJkU
PHP 5.3.4 (cli) / RHEL Linux 2.6.18: *0
PHP 5.3.6 (cli) / RHEL Linux 2.6.18: *0
PHP 5.3.7 with Suhosin-Patch (cli) / FreeBSD 7.2 :   *0
PHP 5.3.8 (cli) / Ubuntu Linux (2.6.32):  *0
PHP 5.3.8 with Suhosin-Patch (cli) / FreeBSD 7.2 :   *0

------------------------------------------------------------------------
[2011-09-17 19:46:27] paj...@php.net

ah, sorry, I misread the *0 part. Please see the documentation (salt length, 
return value on failure).

------------------------------------------------------------------------
[2011-09-17 19:34:11] gelliott000 at yahoo dot ca

I have been able to reproduce the bug under Ubuntu Linux (2.6.32) and a clean 
5.3.8 release download:  PHP 5.3.8 (cli) (built: Sep 17 2011 14:59:12)

------------------------------------------------------------------------
[2011-09-17 18:30:25] paj...@php.net

Please try using a plain PHP fetched either from our svn or from a release 
download.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=55717


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55717&edit=1

Reply via email to