2012-12-22 14 views
8

Za każdym razem staram się uruchomić m_decrypt, mam następujący błąd rzucony:PHP mcrypt utrzymuje rzucanie inicjalizacji modułu failed Warning

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 

Poniżej znajduje się kod, który go napędza wszystko:

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 nie wiem, czego mi brakuje. Czy mój moduł php-mcrypt jest uszkodzony lub brakuje mu zależności? Jestem runnning na PHP 5.3

+0

Duplikat http://stackoverflow.com/questions/4809611/problem-with-mcrypt-installation –

+0

widząc to, nie ważne czy użyteczne odpowiedź w jakikolwiek sposób, kształt lub formę –

+0

Cóż, odpowiedź nie jest bardziej lub mniej ważny lub przydatny w jakikolwiek sposób, ponieważ w zasadzie ma tę samą treść. –

Odpowiedz

8

Ok rozwiązać go. Wprowadziłem błędne stałe. Zmieniłem zmienne mojej klasy jako takie:

protected $cipher = "rijndael-256"; 
protected $mode = "cbc"; 

Mam nadzieję, że pomoże to ludziom zepsuć im mózg!

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

Są to stałe - nie używaj cudzysłowów.

Powiązane problemy