0,0 → 1,109 |
<?php |
|
|
/* |
V4.80 8 Mar 2006 (c) 2000-2006 John Lim (jlim@natsoft.com.my). All rights reserved. |
Contributed by Ross Smith (adodb@netebb.com). |
Released under both BSD license and Lesser GPL library license. |
Whenever there is any discrepancy between the two licenses, |
the BSD license will take precedence. |
Set tabs to 4 for best viewing. |
|
*/ |
|
if (!function_exists('mcrypt_encrypt')) { |
trigger_error('Mcrypt functions are not available', E_USER_ERROR); |
return 0; |
} |
|
/** |
*/ |
class ADODB_Encrypt_MCrypt { |
/** |
*/ |
var $_cipher; |
|
/** |
*/ |
var $_mode; |
|
/** |
*/ |
var $_source; |
|
/** |
*/ |
function getCipher() { |
return $this->_cipher; |
} |
|
/** |
*/ |
function setCipher($cipher) { |
$this->_cipher = $cipher; |
} |
|
/** |
*/ |
function getMode() { |
return $this->_mode; |
} |
|
/** |
*/ |
function setMode($mode) { |
$this->_mode = $mode; |
} |
|
/** |
*/ |
function getSource() { |
return $this->_source; |
} |
|
/** |
*/ |
function setSource($source) { |
$this->_source = $source; |
} |
|
/** |
*/ |
function ADODB_Encrypt_MCrypt($cipher = null, $mode = null, $source = null) { |
if (!$cipher) { |
$cipher = MCRYPT_RIJNDAEL_256; |
} |
if (!$mode) { |
$mode = MCRYPT_MODE_ECB; |
} |
if (!$source) { |
$source = MCRYPT_RAND; |
} |
|
$this->_cipher = $cipher; |
$this->_mode = $mode; |
$this->_source = $source; |
} |
|
/** |
*/ |
function write($data, $key) { |
$iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode); |
$iv = mcrypt_create_iv($iv_size, $this->_source); |
return mcrypt_encrypt($this->_cipher, $key, $data, $this->_mode, $iv); |
} |
|
/** |
*/ |
function read($data, $key) { |
$iv_size = mcrypt_get_iv_size($this->_cipher, $this->_mode); |
$iv = mcrypt_create_iv($iv_size, $this->_source); |
$rv = mcrypt_decrypt($this->_cipher, $key, $data, $this->_mode, $iv); |
return rtrim($rv, "\0"); |
} |
|
} |
|
return 1; |
|
?> |