| 12345678910111213141516171819202122232425262728293031323334353637 | 
							- <?php
 
- namespace PhpOffice\PhpSpreadsheet\Shared;
 
- class PasswordHasher
 
- {
 
-     /**
 
-      * Create a password hash from a given string.
 
-      *
 
-      * This method is based on the algorithm provided by
 
-      * Daniel Rentz of OpenOffice and the PEAR package
 
-      * Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>.
 
-      *
 
-      * @param string $pPassword Password to hash
 
-      *
 
-      * @return string Hashed password
 
-      */
 
-     public static function hashPassword($pPassword)
 
-     {
 
-         $password = 0x0000;
 
-         $charPos = 1; // char position
 
-         // split the plain text password in its component characters
 
-         $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY);
 
-         foreach ($chars as $char) {
 
-             $value = ord($char) << $charPos++; // shifted ASCII value
 
-             $rotated_bits = $value >> 15; // rotated bits beyond bit 15
 
-             $value &= 0x7fff; // first 15 bits
 
-             $password ^= ($value | $rotated_bits);
 
-         }
 
-         $password ^= strlen($pPassword);
 
-         $password ^= 0xCE4B;
 
-         return strtoupper(dechex($password));
 
-     }
 
- }
 
 
  |