cakephp2-php8/cake/libs/security.php
phpnut 03ba042f41 Merging fixes and enhancements into trunk.
Revision: [2193]
Adding fix for Ticket #471

Revision: [2192]
Adding fix from Ticket #464.

Revision: [2191]
Adding fix for Ticket #461

Revision: [2190]
Adding fix for array_merge_recursive() error when unbindModelis used

Revision: [2189]
merging changes made in model_php5.php

Revision: [2188]
Fixing controller so $viewPath can be set as a var

Revision: [2186]
Adding Security component

Revision: [2185]
Adding additional RequestHandler detection, form security authentication, and automagic view variable $data

Revision: [2183]
Fixing Ticket #473

Revision: [2182]
Adding fix for Ticket #261

Revision: [2181]
Changing MySQL column defs from 12 hour times to 24 (#465)

Revision: [2180]
Fixing Tickets #463 and #462, and an error in Controller::setAction()

Revision: [2179]
Fixing a bug I found in AjaxHelper::link(), and changing the stopwatch time to 4 decimals

Revision: [2177]
Added patch from Ticket #459

git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2195 3807eeeb-6ff5-0310-8944-8be069107fe0
2006-03-08 03:13:32 +00:00

137 lines
No EOL
3 KiB
PHP

<?php
/* SVN FILE: $Id$ */
/**
* Short description for file.
*
* Long description for file
*
* PHP versions 4 and 5
*
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
* Copyright (c) 2006, Cake Software Foundation, Inc.
* 1785 E. Sahara Avenue, Suite 490-204
* Las Vegas, Nevada 89104
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @filesource
* @copyright Copyright (c) 2006, Cake Software Foundation, Inc.
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
* @package cake
* @subpackage cake.cake.libs
* @since CakePHP v .0.10.0.1233
* @version $Revision$
* @modifiedby $LastChangedBy$
* @lastmodified $Date$
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
/**
* Short description for file.
*
* Long description for file
*
* @package cake
* @subpackage cake.cake.libs
* @since CakePHP v .0.10.0.1233
*/
class Security extends Object
{
function &getInstance()
{
static $instance = array();
if (!$instance)
{
$instance[0] =& new Security;
}
return $instance[0];
}
function inactiveMins()
{
//$security =& Security::getInstance();
switch (CAKE_SECURITY)
{
case 'high':
return 10;
break;
case 'medium':
return 100;
break;
case 'low':
default :
return 300;
break;
}
}
function generateAuthKey()
{
return Security::hash(uniqid(rand(), true));
}
function validateAuthKey($authKey)
{
return true;
}
function hash($string, $type='sha1')
{
$type = strtolower($type);
if ($type == 'sha1')
{
if (function_exists('sha1'))
{
return sha1($string);
}
else
{
$type = 'sha256';
}
}
if ($type == 'sha256')
{
if (function_exists('mhash'))
{
return bin2hex(mhash(MHASH_SHA256, $string));
}
else
{
$type = 'md5';
}
}
if ($type == 'md5')
{
return md5($string);
}
}
function cipher($text, $key)
{
if (!defined('CIPHER_SEED'))
{
//This is temporary will change later
define('CIPHER_SEED', 'mKEZGy8AB8FErX4t');
}
srand(CIPHER_SEED);
$out = '';
for($i = 0; $i < strlen($text); $i++)
{
for($j = 0; $j < ord(substr($key, $i % strlen($key), 1)); $j++)
{
$toss = rand(0, 255);
}
$mask = rand(0, 255);
$out .= chr(ord(substr($text, $i, 1)) ^ $mask);
}
return $out;
}
}
?>