8

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

3
  • Duplicate of stackoverflow.com/questions/4809611/… Commented Dec 22, 2012 at 19:10
  • Saw it, not a valid or useful answer in any way, shape or form Commented Dec 22, 2012 at 19:11
  • Well, your answer isn't more or less valid or useful in any way, since it basically has the same content. Commented Dec 22, 2012 at 20:31

2 Answers 2

8

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!!

Sign up to request clarification or add additional context in comments.

Comments

8
protected $cipher = MCRYPT_SERPENT_256;
protected $mode = MCRYPT_MODE_CBC;

Those are constants - don't use quotes.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.