Nov
1
2012

Encrypt – Decrypt Class

I have come across a few petitions from some of you readers, and I will try to accomplish all of your requests as soon as possible. The first here is a class that I have built based on some ecnryption and decryption functions that I have used in the past. These functions can be found here: http://www.webmasterworld.com/php/3086138.htm?highlight=msg3086437

I took the liberty to create a class so that it can be downloaded by you guys. The use is simple and I can explain how to use it. Just include the class file and create a new object from it:

Usage

[php]
/* Including encrypt class file */
include_once('jtcrypt.php');
/* Create a new object */
$enc = new jtcrypt();
?>
[/php]

In order to encrypt or decrypt, we will need to send in the the string to process, and a passphrase called the key. This key is to make your encryption/decryption process unique to your website. The way to do it is as follows:

[php]
/* Encrypt a password */
$pass = $_POST['password'];
$key = 'SomeKeyThatYouWant';
$enc_pass = $enc->encrypt($pass, $key);

/* Do whatever you need to do with the encrypted phrase */
// ..
// ..

/* Decrypt password */
$dec_pass = $enc->decrypt($enc_pass, $key);
echo ‘The decrypted password is :’ .$dec_pass.’
‘;
?>
[/php]

Before Using!!

Make sure you initialize the the variables within the class before you encrypt or decrypt. This is to prevent errors.

[php]
/* Initialize variable data */
$enc->init_values();
?>
[/php]

Below I have the full code for the class. I will soon put it up on github so that it will be available for downloaded.
[php]
/**
* Author: Jorge Torres - jotorres1@gmail.com
* Website: http://www.jotorres.com
* Source Website: http://www.webmasterworld.com/php/3086138.htm?highlight=msg3086437
* Date: 10/17/2012
* Version: 1.0
* Description: An encryption and decryption class for small projects
* Documentation: http://www.jotorres.com/
*/

class jtcrypt{

/**
* @access private
* @var string
*/
private $result;
/**
* @access private
* @var int
*/
private $count;

public function __construct(){
// Initial values
$this->init_values();
}

/**
* Function to encrypt
*/
public function encrypt($string, $key) {

for($i=0; $i $char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$this->result.=$char;
}

return base64_encode($this->result);
}

/**
* Function to decrypt
*/
public function decrypt($string, $key) {

$string = base64_decode($string);

for($i=0; $i $char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$this->result.=$char;
}

return $this->result;
}

/**
* Initialize values
*/
public function init_values(){
$this->result = ”;
$this->count = 0;
}
}
?>
[/php]

About the Author: Jorge Torres

MS. Computer Science Codeigniter Web Developer

Leave a comment