PHP MCRYPT 不断抛出 Module initialization failed Warning

标签 php encryption mcrypt

每次我尝试运行 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 上运行

最佳答案

好的解决了。我输入的常量是错误的。我这样更改了类(class)的变量:

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

希望这能帮助人们在以后的道路上不再胡思乱想!!

关于PHP MCRYPT 不断抛出 Module initialization failed Warning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005669/

相关文章:

php - 如何在 PHP 5.5 和 MSSQL 中使用 PDO

javascript - 需要将长文本变量从 JavaScript 传递到 PHP

c# - 安全发送/检索数据

php - 使用 mcrypt、PHP 和 MySQL 进行加密

php - Mcrypt 输出 - 仅小写?

php - 准备在 PHP 7.2 中删除 Mcrypt

php - 按我的时间获得我的排名

php - 页面仅在 PHP 5.3.1 上显示语法错误,但在 5.2.6 上正常

encryption - EMV 如何加密非接触式交易?

c - 如何在 C 中对文件缓冲区进行异或并输出到新文件