openmind ☃
August 28, 2008
☃
Codeigniter: Cryptography Library (
codeigniter,
PHP,
cryptography)
<? if(!defined('BASEPATH')) exit('No direct script access allowed');
class Crypto
{
private $td;
private $cipher;
private $mode;
function __construct()
{
$this->cipher = "blowfish";
$this->mode = "cfb";
$this->key = "wha";
$this->td = mcrypt_module_open($this->cipher,'',$this->mode,'');
}
function encrypt($strValue)
{
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($this->td), MCRYPT_RAND);
mcrypt_generic_init($this->td, md5($this->key), $iv);
$strEncrypted = mcrypt_generic($this->td, $strValue);
$strEncrypted = base64_encode($iv.$strEncrypted);
mcrypt_generic_deinit($this->td);
return $strEncrypted;
}
function decrypt($strValue)
{
$strValue = base64_decode($strValue);
$ivsize = mcrypt_enc_get_iv_size($this->td);
$iv = substr($strValue, 0, $ivsize);
$strValue = substr($strValue, $ivsize);
mcrypt_generic_init($this->td, md5($this->key), $iv);
$strDecrypted = mdecrypt_generic($this->td, $strValue);
mcrypt_generic_deinit($this->td);
return $strDecrypted;
}
}
?>