[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2015 PHPExcel 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 * 21 * @category PHPExcel 22 * @package PHPExcel_Shared 23 * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) 24 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 25 * @version ##VERSION##, ##DATE## 26 */ 27 28 29 /** 30 * PHPExcel_Shared_PasswordHasher 31 * 32 * @category PHPExcel 33 * @package PHPExcel_Shared 34 * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_Shared_PasswordHasher 37 { 38 /** 39 * Create a password hash from a given string. 40 * 41 * This method is based on the algorithm provided by 42 * Daniel Rentz of OpenOffice and the PEAR package 43 * Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>. 44 * 45 * @param string $pPassword Password to hash 46 * @return string Hashed password 47 */ 48 public static function hashPassword($pPassword = '') 49 { 50 $password = 0x0000; 51 $charPos = 1; // char position 52 53 // split the plain text password in its component characters 54 $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY); 55 foreach ($chars as $char) { 56 $value = ord($char) << $charPos++; // shifted ASCII value 57 $rotated_bits = $value >> 15; // rotated bits beyond bit 15 58 $value &= 0x7fff; // first 15 bits 59 $password ^= ($value | $rotated_bits); 60 } 61 62 $password ^= strlen($pPassword); 63 $password ^= 0xCE4B; 64 65 return(strtoupper(dechex($password))); 66 } 67 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |