[ Index ]
 

Code source de CakePHP 1.1.13.4450

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/cake/libs/ -> security.php (source)

   1  <?php
   2  /* SVN FILE: $Id: security.php 4409 2007-02-02 13:20:59Z phpnut $ */
   3  /**
   4   * Security Class
   5   *
   6   * This class is a singleton class that contains
   7   * functions for hasing and security.
   8   *
   9   * PHP versions 4 and 5
  10   *
  11   * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/>
  12   * Copyright 2005-2007, Cake Software Foundation, Inc.
  13   *                                1785 E. Sahara Avenue, Suite 490-204
  14   *                                Las Vegas, Nevada 89104
  15   *
  16   * Licensed under The MIT License
  17   * Redistributions of files must retain the above copyright notice.
  18   *
  19   * @filesource
  20   * @copyright        Copyright 2005-2007, Cake Software Foundation, Inc.
  21   * @link                http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
  22   * @package            cake
  23   * @subpackage        cake.cake.libs
  24   * @since            CakePHP(tm) v .0.10.0.1233
  25   * @version            $Revision: 4409 $
  26   * @modifiedby        $LastChangedBy: phpnut $
  27   * @lastmodified    $Date: 2007-02-02 07:20:59 -0600 (Fri, 02 Feb 2007) $
  28   * @license            http://www.opensource.org/licenses/mit-license.php The MIT License
  29   */
  30  /**
  31   * Security Class
  32   *
  33   * This class is a singleton class that contains functions for hasing and security.
  34   *
  35   * @package        cake
  36   * @subpackage    cake.cake.libs
  37   */
  38  class Security extends Object {
  39  /**
  40   * Singleton method to retrieve the instance of the Security class
  41   *
  42   * @return object Security
  43   * @access public
  44   */
  45      function &getInstance() {
  46          static $instance = array();
  47          if (!$instance) {
  48              $instance[0] = &new Security;
  49          }
  50          return $instance[0];
  51      }
  52  /**
  53   * Returns inactive minutes constant based on cake the security level
  54   *
  55   * @return integer
  56   * @access public
  57   */
  58  	function inactiveMins() {
  59          switch(CAKE_SECURITY) {
  60              case 'high':
  61                  return 10;
  62              break;
  63              case 'medium':
  64                  return 100;
  65              break;
  66              case 'low':
  67              default:
  68                  return 300;
  69              break;
  70          }
  71      }
  72  /**
  73   * Generates a unique authkey
  74   *
  75   * @return mixed
  76   * @access public
  77   */
  78  	function generateAuthKey() {
  79          $_this =& Security::getInstance();
  80          return $_this->hash(uniqid(rand(), true));
  81      }
  82  /**
  83   * Validates the authkey
  84   *
  85   * @param mixed $authKey
  86   * @return boolean
  87   * @access public
  88   */
  89  	function validateAuthKey($authKey) {
  90          return true;
  91      }
  92  /**
  93   * Generates a hash of a string using a php built in hashing function
  94   *
  95   * @param string $string The string to be hashed
  96   * @param string $type The hashing algorithm
  97   * @return string
  98   * @access public
  99   */
 100  	function hash($string, $type = 'sha1') {
 101          $type = strtolower($type);
 102          if ($type == 'sha1') {
 103              if (function_exists('sha1')) {
 104                  $return = sha1($string);
 105                  return $return;
 106              } else {
 107                  $type = 'sha256';
 108              }
 109          }
 110  
 111          if ($type == 'sha256') {
 112              if (function_exists('mhash')) {
 113                  $return = bin2hex(mhash(MHASH_SHA256, $string));
 114                  return $return;
 115              } else {
 116                  $type = 'md5';
 117              }
 118          }
 119  
 120          if ($type == 'md5') {
 121              $return = md5($string);
 122              return $return;
 123          }
 124      }
 125  /**
 126   * Function that ciphers a text using a key
 127   *
 128   * @param string $text
 129   * @param string $key
 130   * @return string
 131   * @access public
 132   */
 133  	function cipher($text, $key) {
 134          if (!defined('CIPHER_SEED')) {
 135              //This is temporary will change later
 136              define('CIPHER_SEED', '76859309657453542496749683645');
 137          }
 138          srand (CIPHER_SEED);
 139          $out = '';
 140  
 141          for($i = 0; $i < strlen($text); $i++) {
 142              for($j = 0; $j < ord(substr($key, $i % strlen($key), 1)); $j++) {
 143                  $toss = rand(0, 255);
 144              }
 145              $mask = rand(0, 255);
 146              $out .= chr(ord(substr($text, $i, 1)) ^ $mask);
 147          }
 148          return $out;
 149      }
 150  }
 151  ?>


Généré le : Sun Feb 25 19:27:47 2007 par Balluche grâce à PHPXref 0.7