You are here

public static function PHPExcel_Shared_PasswordHasher::hashPassword in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php \PHPExcel_Shared_PasswordHasher::hashPassword()

* 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>. * *

Parameters

string $pPassword Password to hash: * @return string Hashed password

4 calls to PHPExcel_Shared_PasswordHasher::hashPassword()
PHPExcel_DocumentSecurity::setRevisionsPassword in vendor/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php
Set RevisionsPassword
PHPExcel_DocumentSecurity::setWorkbookPassword in vendor/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php
Set WorkbookPassword
PHPExcel_Worksheet::protectCells in vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php
Set protection on a cell range
PHPExcel_Worksheet_Protection::setPassword in vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php
Set Password

File

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

Class

PHPExcel_Shared_PasswordHasher
PHPExcel_Shared_PasswordHasher

Code

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));
}