2012-12-22 33 views
8

Mỗi lần tôi cố gắng chạy m_decrypt, tôi đã được lỗi sau ném:PHP Mcrypt giữ ném Mô-đun khởi thất bại 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 

Dưới đây là Bộ luật mà các ổ đĩa lên tất cả:

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)) 
     ); 
    } 
} 

tôi không biết tôi đang thiếu gì. Module php-mcrypt của tôi có bị hỏng hay thiếu phụ thuộc không? Tôi đang chạy trên PHP 5.3

+0

Bản sao của http://stackoverflow.com/questions/4809611/problem-with-mcrypt-installation –

+0

Thấy nó, không phải là câu trả lời hợp lệ hoặc hữu ích dưới bất kỳ hình thức nào, hình dạng hoặc hình thức –

+0

Vâng, câu trả lời của bạn không còn nữa hoặc ít hợp lệ hoặc hữu ích theo bất kỳ cách nào, vì về cơ bản nó có cùng nội dung. –

Trả lời

8

Ok đã giải quyết. Tôi đã đưa vào các hằng số sai. Tôi đã thay đổi xung quanh các biến của lớp học của mình như vậy:

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

Hy vọng điều này sẽ giúp mọi người xuống đường không đánh vào não của họ !!

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

Đó là các hằng số - không sử dụng dấu ngoặc kép.

Các vấn đề liên quan