php错误:加密库需要在codeigniter中使用Mcrypt扩展

问题描述 投票:2回答:7

我有一个登录和注册表单,并使用加密库加密密码..我正在使用Xampp我的服务器,我的系统正常工作..

用于加密密码的代码:

$this->encrypt->encode('my password'); 

添加加密库

 $autoload['libraries'] = array('encrypt');

并在config中设置密钥:

$config['encryption_key'] = 'nmsc encrypt secret key';

我的代码在Windows中使用xampp服务器效果很好,但是当我试图将我的网站上传到ubuntu服务器时我发现了一个错误说

Encrypt库需要Mcrypt扩展

如何解决这个问题?引用本指南qazxsw大便,但我不知道如何安装该mcrypt。我的网站需要从ubuntu服务器运行。如何安装或修复该问题?

php codeigniter encryption mcrypt
7个回答
10
投票

你应该安装PHP mcrypt模块;

https://www.codeigniter.com/user_guide/libraries/encryption.html

通常你会很好;)


1
投票

我收到此错误是因为我已经从XAMPP(php5)切换到XAMPP(php7),为此我用新文件替换了我的旧CI-> system-> libraries-> encrypt.php:sudo apt-get install php5-mcrypt sudo php5enmod mcrypt ,并且它有效。

在这个新文件中,我们检查__construct函数中的mcrypt_encrypt是否支持

encrypt.php

并且基于此我们在mcrypt_encode和_xor_encode之间使用不同的函数。

只是要知道,如果你在__construct函数中看到这个旧文件,你会看到实际的错误检查

            $this->_mcrypt_exists = ( ! function_exists('mcrypt_encrypt')) ? FALSE : TRUE;

它对我有用。


0
投票

听起来你需要更新你的PHP版本。

    if (($this->_mcrypt_exists = function_exists('mcrypt_encrypt')) === FALSE)
    {
        show_error('The Encrypt library requires the Mcrypt extension.');
    }

0
投票

打开你的:http://php.net/manual/en/mcrypt.requirements.php 示例:/etc/php5/apache2/php.ini 在第1728行,输入以下代码:

sudo gedit /etc/php5/apache2/php.ini

然后重启你的Apache。


0
投票

解决方案对我有用

之前:

extension=mcrypt.so

之后:

$autoload['libraries'] = array('database','session','upload','form_validation','encrypt','pagination');

我刚刚从自动加载库中删除了加密库。


-2
投票

只需转到cpanel中的php版本

并将版本更改为5.x.


-2
投票

最佳解决方案是:

更改

$autoload['libraries'] = array('database','session','upload','form_validation','pagination');

 $this->load->library('encrypt');
© www.soinside.com 2019 - 2024. All rights reserved.