You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							109 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							109 lines
						
					
					
						
							1.9 KiB
						
					
					
				| <?php | |
| 
 | |
| 
 | |
| /* | |
| V4.01 23 Oct 2003  (c) 2000-2005 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; | |
| 
 | |
| ?>
 | |
| 
 |