Every time I try to run m_decrypt, I have the following error thrown:
Warning: mcrypt_get_key_size(): Module initialization failed in /var/www/milo/system/encryption/common.php on line 51 Warning: mcrypt_get_block_size(): Module initialization failed in /var/www/milo/system/encryption/common.php on line 54 Warning: mcrypt_decrypt(): Module initialization failed in /var/www/milo/system/encryption/common.php on line 55
Below is the Code that drives it all:
class encrpt
{
protected $data;
protected $key = "JUST A KEY";
protected $cipher = "MCRYPT_SERPENT_256";
protected $mode = "MCRYPT_MODE_CBC";
public function m_encrypt($data)
{
return (string)
base64_encode(
mcrypt_encrypt(
$this->cipher,
substr(md5($this->key),0,mcrypt_get_key_size($this->cipher, $this->mode)),
$data,
$this->mode,
substr(md5($this->key),0,mcrypt_get_block_size($this->cipher, $this->mode))
)
);
}
public function m_decrypt($data)
{
return (string)
mcrypt_decrypt(
$this->cipher,
substr(md5($this->key),0,mcrypt_get_key_size($this->cipher, $this->mode)),
base64_decode($data),
$this->mode,
substr(md5($this->key),0,mcrypt_get_block_size($this->cipher, $this->mode))
);
}
}
I don't know what I am missing. Is my php-mcrypt module broken or missing dependencies? I am runnning on PHP 5.3
Ok solved it. I was putting in the constants wrong. I changed around my class's variables as such:
protected $cipher = "rijndael-256";
protected $mode = "cbc";
Hope this helps people down the road from not bashing their brain in!!
protected $cipher = MCRYPT_SERPENT_256;
protected $mode = MCRYPT_MODE_CBC;
Those are constants - don't use quotes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With