Edit report at http://bugs.php.net/bug.php?id=53743&edit=1
ID: 53743
Comment by: os at irj dot ru
Reported by: daniel dot macdonald at designory dot com
Summary: Crypt() returns inconsistant results on numeric
strings
Status: Open
Type: Bug
Package: *Encryption and hash functions
PHP Version: 5.3.5
Block user comment: N
Private report: N
New Comment:
Win 7 x64
PHP 5.3.6 x86 MSVC9 (Visual C++ 2008) Thread Safety AS Apache 2.2
Module
Apache/2.2.17 x86 NO SSL
Sctipt:
<?php
echo crypt("dev", '$1$dW0.is5.$10CH101gGOr1677ZYd517.');
?>
Expected Result
---------------
$1$dW0.is5.$10CH101gGOr1677ZYd517.
Actual result
-------------
FireFox 4:
$1$dW0.is5.$fELOCg/o4M4JSqjT0FAaZ1
IE 9 with meny F5 refresh actual result is
Result 1: $1$dW0.is5.$PAX1vDQNMC0Ag2U3joEb71
Result 2: $1$dW0.is5.$fELOCg/o4M4JSqjT0FAaZ1
in cycle
If I reload apache 2 service hash result are changing to some other
FF: $1$dW0.is5.$j9t0S3va.9brcE2kIILGx1
IE: $1$dW0.is5.$d2QAXWA.uqHWaY1KopvYr.,
$1$dW0.is5.$j9t0S3va.9brcE2kIILGx1
etc
Previous Comments:
------------------------------------------------------------------------
[2011-02-22 15:59:07] tomas dot brastavicius at quantum dot lt
Could not reproduce this bug on Ubuntu 10.10, PHP 5.3.6RC1, configured
with
./configure
--with-mhash \
--with-mcrypt
Actual result:
$1$abcdefgh$lYixNHkMJRqYy77zCKbOj/
$1$abcdefgh$lYixNHkMJRqYy77zCKbOj/
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
------------------------------------------------------------------------
[2011-01-14 18:48:36] daniel dot macdonald at designory dot com
Another test case producing weird results?:
code:
$salt = '$1$abcdefgh$';
$pass = '123';
for ($i=0; $i<3; $i++) {
echo crypt($pass, $salt)."<br />\n";
}
echo crypt($pass, $salt)."<br />\n";
outputs:
$1$abcdefgh$JwVLNLvq4bwIKuyv1qm8L0
$1$abcdefgh$JwVLNLvq4bwIKuyv1qm8L0
$1$abcdefgh$JwVLNLvq4bwIKuyv1qm8L0
$1$abcdefgh$ohde1Lc7jN2GJjhi5UKGV0
------------------------------------------------------------------------
[2011-01-14 02:59:02] daniel dot macdonald at designory dot com
Description:
------------
---
>From manual page: http://www.php.net/function.crypt#Return Values
---
The crypt() function, when using MD5, returns different results if the
input string is all numeric.
Test script:
---------------
<?php
$salt = '$1$abcdefgh$';
$pass = '123';
$pass2 = '123a';
echo crypt($pass, $salt)."<br />\n";
echo crypt($pass, $salt)."<br /><br />\n";
echo crypt($pass2, $salt)."<br />\n";
echo crypt($pass2, $salt)."<br />\n";
?>
Expected result:
----------------
$1$abcdefgh$OTo2MhKVLtpE9bkEycLQf0
$1$abcdefgh$OTo2MhKVLtpE9bkEycLQf0
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
Actual result:
--------------
$1$abcdefgh$OTo2MhKVLtpE9bkEycLQf0
$1$abcdefgh$JwVLNLvq4bwIKuyv1qm8L0
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
$1$abcdefgh$PiPnB9KJsYjPIXtoia0WK/
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53743&edit=1