[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2014 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_Reader_Excel5 23 * @copyright Copyright (c) 2006 - 2014 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 * PHPExcel_Reader_Excel5_RC4 30 * 31 * @category PHPExcel 32 * @package PHPExcel_Reader_Excel5 33 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 34 */ 35 class PHPExcel_Reader_Excel5_RC4 36 { 37 // Context 38 var $s = array(); 39 var $i = 0; 40 var $j = 0; 41 42 /** 43 * RC4 stream decryption/encryption constrcutor 44 * 45 * @param string $key Encryption key/passphrase 46 */ 47 public function __construct($key) 48 { 49 $len = strlen($key); 50 51 for ($this->i = 0; $this->i < 256; $this->i++) { 52 $this->s[$this->i] = $this->i; 53 } 54 55 $this->j = 0; 56 for ($this->i = 0; $this->i < 256; $this->i++) { 57 $this->j = ($this->j + $this->s[$this->i] + ord($key[$this->i % $len])) % 256; 58 $t = $this->s[$this->i]; 59 $this->s[$this->i] = $this->s[$this->j]; 60 $this->s[$this->j] = $t; 61 } 62 $this->i = $this->j = 0; 63 } 64 65 /** 66 * Symmetric decryption/encryption function 67 * 68 * @param string $data Data to encrypt/decrypt 69 * 70 * @return string 71 */ 72 public function RC4($data) 73 { 74 $len = strlen($data); 75 for ($c = 0; $c < $len; $c++) { 76 $this->i = ($this->i + 1) % 256; 77 $this->j = ($this->j + $this->s[$this->i]) % 256; 78 $t = $this->s[$this->i]; 79 $this->s[$this->i] = $this->s[$this->j]; 80 $this->s[$this->j] = $t; 81 82 $t = ($this->s[$this->i] + $this->s[$this->j]) % 256; 83 84 $data[$c] = chr(ord($data[$c]) ^ $this->s[$t]); 85 } 86 return $data; 87 } 88 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |