public function encrypt($text, $key = null)
{
if ($key === null) {
$key = $this->_key;
}
$ivSize = mcrypt_enc_get_block_size($this->_mcrypt);
$encryptKey = md5($key, true);
$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
mcrypt_generic_init($this->_mcrypt, $encryptKey, $iv);
return $iv . mcrypt_generic($this->_mcrypt, pack('N', strlen($text) + 16) . $text . md5($text, true));
}