【问题标题】:PHP MCRYPT keeps throwing Module initialization failed WarningPHP MCRYPT 不断抛出模块初始化失败警告
【发布时间】:2012-12-09 22:48:40
【问题描述】:

每次我尝试运行 m_decrypt 时,都会抛出以下错误:

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  

以下是驱动这一切的代码:

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

我不知道我错过了什么。我的 php-mcrypt 模块是否损坏或缺少依赖项?我在 PHP 5.3 上运行

【问题讨论】:

  • 看到了,以任何方式、形状或形式都不是有效或有用的答案
  • 好吧,你的答案在任何方面都或多或少没有任何意义或有用,因为它基本上具有相同的内容。

标签: php encryption mcrypt


【解决方案1】:
protected $cipher = MCRYPT_SERPENT_256;
protected $mode = MCRYPT_MODE_CBC;

这些是常量 - 不要使用引号。

【讨论】:

    【解决方案2】:

    好的解决了。我输入错误的常量。我改变了我班级的变量:

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

    希望这可以帮助人们不要在路上打自己的大脑!!

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 2012-11-28
      • 2014-03-22
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多