Bug #64211 [Nab]: sha256 hashes "#", "&", and "+" incorrectly.
| From: | sixd@php.net | Date: | Thu, 14 Feb 2013 21:38:29 +0000 |
| Subject: | Bug #64211 [Nab]: sha256 hashes "#", "&", and "+" incorrectly. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-176636@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64211&edit=1
ID: 64211
Updated by: sixd@php.net
Reported by: pwormer at science dot ru dot nl
Summary: sha256 hashes "#", "&", and "+" incorrectly.
Status: Not a bug
Type: Bug
Package: hash related
Operating System: windows/linux
PHP Version: 5.4.11
Block user comment: N
Private report: N
New Comment:
s/expecting/getting
Previous Comments:
------------------------------------------------------------------------
[2013-02-14 21:37:50] sixd@php.net
Can't reproduce on 32 or 64 bit Linux:
$ php53 -r 'echo hash("sha256", "#") . "\n";'
334359b90efed75da5f0ada1d5e6b256f4a6bd0aee7eb39c0f90182a021ffc8b
$ php54 -r 'echo hash("sha256", "#") . "\n";'
334359b90efed75da5f0ada1d5e6b256f4a6bd0aee7eb39c0f90182a021ffc8b
Is it coincidence that "" (an empty string) gives the hash you are expecting for
"#".
$ php53 -r 'echo hash("sha256", "") . "\n";'
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
$ php54 -r 'echo hash("sha256", "") . "\n";'
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
------------------------------------------------------------------------
[2013-02-14 11:05:56] pwormer at science dot ru dot nl
Description:
------------
The JavaScript functions at:
http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js
and
http://www.movable-type.co.uk/scripts/sha256.html
give the same hash for any password of any length consisting of ASCII 32 through 128. Almost
always the hash is the same as obtained from PHP: hash("sha256", $pswd).
Exceptions (bugs?) are passwords containing one or more of the three characters:
"#" (number sign), "&" (ampersand), or "+" (plus sign).
Tested with XAMPP (PHP 5.4.7), FireFox and Chrome and Linux server.
Test script:
---------------
See http://www.theochem.ru.nl/~pwormer/sha256bug.php
This URL calls SHA256.php which contains the following four lines
<?php
$pswd = $_GET["pswd"];
echo hash("sha256", $pswd);
?>
Expected result:
----------------
I expect JavaScript and PHP to give same Sha-256 hashes
Actual result:
--------------
Hash of # (single character):
JS: 334359b90efed75da5f0ada1d5e6b256f4a6bd0aee7eb39c0f90182a021ffc8b
PHP: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64211&edit=1