You are here

class PHPExcel_Shared_PasswordHasher in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php \PHPExcel_Shared_PasswordHasher

PHPExcel_Shared_PasswordHasher

@category PHPExcel @package PHPExcel_Shared @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)

Hierarchy

Expanded class hierarchy of PHPExcel_Shared_PasswordHasher

1 string reference to 'PHPExcel_Shared_PasswordHasher'
PasswordHasherTest::testHashPassword in vendor/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/PasswordHasherTest.php
@dataProvider providerHashPassword

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php, line 36

View source
class PHPExcel_Shared_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 = 0x0;
    $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));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHPExcel_Shared_PasswordHasher::hashPassword public static function * 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>. * *