|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-05-06 03:31 UTC] stas@php.net
-Status: Open
+Status: Not a bug
-Type: Security
+Type: Bug
[2016-05-06 03:31 UTC] stas@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 19:00:01 2025 UTC |
Description: ------------ * I have found this issue on PHP 5.3.10, 5.6.28 and 7.0.5. SHA1 generates duplicate values when the string input begins with a Unicode Han Character even if you add some random value the output string will not change at all. Test script: --------------- <?php // Array with some Unicode Han Characters $arrCharacters = array("7e56", "7e57", "7e58", "7e59", "7e60", "7e61", "7e62"); foreach ($arrCharacters as $hanCharacter) { echo "Han Character: $hanCharacter \n"; for ($i = 0; $i < 10; $i++) { $hash = sha1($hanCharacter + "someString" + microtime() + rand(1, 1000)); echo $hash . "\n"; } echo "************** \n"; } Expected result: ---------------- As you can see it generates the same output string even when the input string is different. Han Character: 7e56 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 890e9b222a287b10a9110e14d3aa29a8d39195e5 ************** Han Character: 7e57 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 f2639489499e6f610cb539adfd984641791d0818 ************** Han Character: 7e58 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb 16c9f88a6d5eecf42d85bce00df9719fab1e67bb ************** Han Character: 7e59 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 2d938b3495ea5cd22ab10504da80d07353232c06 ************** Han Character: 7e60 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 71bd1a851c529dec0df7ecd004669eb4c5146f33 ************** Han Character: 7e61 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e 2766b90b1cb57ab0ba78dd8481ef0b0cb9ecf82e ************** Han Character: 7e62 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 99ed0560ed877c0b74b49f895b7ccd0af5a821f7 **************