This class provides the functionality to encrypt and decrypt a text string. The class makes use of the PHP mcrypt extension which provides the ability to create two way encryption, or decoding of text messages.
<?php /* Online PHP Examples with Source Code website: http://4evertutorials.blogspot.in/ */ error_reporting(E_ALL); class runCrypt { /** * * This is called when we wish to set a variable * * @access public * @param string $name * @param string $value * */ public function __set( $name, $value ) { switch( $name) { case 'key': case 'ivs': case 'iv': $this->$name = $value; break; default: throw new Exception( "$name cannot be set" ); } } /** * * Gettor - This is called when an non existant variable is called * * @access public * @param string $name * */ public function __get( $name ) { switch( $name ) { case 'key': return 'keee'; case 'ivs': return mcrypt_get_iv_size( MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB ); case 'iv': return mcrypt_create_iv( $this->ivs ); default: throw new Exception( "$name cannot be called" ); } } /** * * Encrypt a string * * @access public * @param string $text * @return string The encrypted string * */ public function encrypt( $text ) { // add end of text delimiter $data = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_ECB, $this->iv ); return base64_encode( $data ); } /** * * Decrypt a string * * @access public * @param string $text * @return string The decrypted string * */ public function decrypt( $text ) { $text = base64_decode( $text ); return mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_ECB, $this->iv ); } } // end of class ?>
Example Usage
<?php /* Online PHP Examples with Source Code website: http://4evertutorials.blogspot.in/ */ // a new runCrypt instance $crypt = new runCrypt; // encrypt the string $encoded = $crypt->encrypt( 'my message'); echo $encoded."\n"; // decrypt the string echo $crypt->decrypt( $encoded ) . "\n"; ?>