<?php
error_reporting(1);
ini_set('display_errors', 1);
class Encryption {
private $key = "myKeyIs";
protected $iv_size;
protected $iv;
public function __construct(){
$this->iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$this->iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
}
public function encryptData($input) {
$input = trim($input);
$output = $this->encrypt($input);
return $output;
}
public function decryptData($input) {
$input = base64_decode($input);
$output = $this->decrypt($input);
return $output;
}
public function decrypt($string) {
$string = base64_decode($string);
# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
$iv_dec = substr($string, 0, $this->iv_size);
# retrieves the cipher text (everything except the $iv_size in the front)
$string = substr($string, $this->iv_size);
# may remove 00h valued characters from end of plain text
$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key,
$string, MCRYPT_MODE_CBC, $iv_dec);
return $output;
}
public function encrypt($string) {
$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key,
$string, MCRYPT_MODE_CBC, $this->iv);
# prepend the IV for it to be available for decryption
$output = $this->iv . $output;
# encode the resulting cipher text so it can be represented by a string
$output = base64_encode($output);
return $output;
}
}
$test = new Encryption();
echo $encrypted = $test->encryptData("My Text that needs to be encrypted")."\n";
echo $test->decryptData("$encrypted");