Warning: Missing argument 1 for skf\dao_kb::__construct() in /home/kevin/www/phpro.org/html/application/lib/objects/dao_kb.class.php on line 18 Notice: Undefined variable: db_connection in /home/kevin/www/phpro.org/html/application/lib/objects/dao_kb.class.php on line 19 Two Way Encryption With PHP Mcrypt

PHPRO.ORG

Two Way Encryption With PHP Mcrypt

Two Way Encryption With PHP Mcrypt

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

// make it of break it
error_reporting(E_ALL);

/**
* Class to provide 2 way encryption of data
*
* @author    Kevin Waterson
* @copyright    2009    PHPRO.ORG
*
*/
class proCrypt 
{
    
/**
    *
    * 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_sizeMCRYPT_RIJNDAEL_128MCRYPT_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_encryptMCRYPT_RIJNDAEL_128$this->key$textMCRYPT_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_decryptMCRYPT_RIJNDAEL_128$this->key$textMCRYPT_MODE_ECB$this->iv );
    }
// end of class

Example Usage

 
<?php

// a new proCrypt instance
$crypt = new proCrypt;

// encrypt the string
$encoded $crypt->encrypt'my message');
echo 
$encoded."\n";

// decrypt the string
echo $crypt->decrypt$encoded ) . "\n";

?>