使用codeigniter的加密类的加密密码会在两台不同的计算机上生成相同的加密密码吗?例如,我有一个主机在线生产站点,我在本地安装了我的电脑。但是当我将数据库从一个数据库恢复到另一个时,密码不匹配。生产服务器和本地服务器上的codeigniter加密
回答
没有看到你的代码,不可能知道问题可能是什么(这就是为什么你还没有答案)。但是,如果您以相同的方式对字符串进行加密,只要您使用相同的加密密钥,它应该是相同的。在CI的加密类(see here),你可以在config.php
文件中像这样做:
$config['encryption_key'] = "YOUR KEY";
我知道这是一个老问题,但我有同样的问题,想通了..
CodeIgniter的加密库在不同的环境中表现不同。具体来说,库会自动检测是否安装了PHP mcrypt扩展,如果是,则使用完全不同的算法。
您可能已将mcrypt安装在您的服务器上,而不是安装在您的开发环境中,反之亦然。
有两种方法可以解决这个问题。无论哪种方式,你需要创建一个MY_Encrypt.php类来扩展内置加密类:
方案一:请始终使用mcrypt的,如果没有安装大声失败:
class MY_Encrypt extends CI_Encrypt
{
public function __construct()
{
if (! function_exists('mcrypt_encrypt')) {
throw new Exception("Encryption requires mcrypt PHP extension!");
}
parent::__construct();
}
}
方案二:切勿使用mcrypt的,即使安装了它:
class MY_Encrypt extends CI_Encrypt
{
public function __construct()
{
parent::__construct();
//Pretend Mcrypt doesn't exist no matter what
$this->_mcrypt_exists = FALSE;
}
}
这将导致笨加密的行为在任何环境一样。
恕我直言,加密库应该从来没有默默地改变用于加密的算法基于环境。 Automagic加密算法的改变是一个可怕的想法。
我会给你几个票。我结束了一些垃圾数据,但无法弄清楚。 m_crypt函数被禁用。现在我需要使用m_crypt解密旧数据并在新方法中加密。简直愚蠢! – machineaddict 2013-10-02 10:11:34
选项二对我来说工作正常。 – 2017-09-19 07:21:20
我一直在寻找一个答案,但我想出了解决方案,它也许含糊,但应该是很简单的新手:
安装libmcrypt并安装的php-mcrypt的。
编辑您的php.ini文件。有些发行版可能会有所不同,我的地址位于:/etc/php/php.ini
找到所有扩展名,并添加取消注释或将以下内容添加到您的php.ini文件中。
延长= mcrypt.so
重新启动Apache或任何Web服务器使用。
在config.php文件中使用此项。它会给你一个不同的关键,但结果将是相同的:
$config['encryption_key'] = "YOUR KEY";
- 1. 同步本地服务器和生产服务器
- 2. 主持和本地生产服务器
- 3. 本地服务器与Vs.生产服务器
- 4. Iframe在本地服务器上正常工作但不是生产服务器
- 5. 生产服务器
- 6. 生产服务器
- 7. 在生产服务器/机器上安装Zend服务器
- 8. .net在生产服务器上的硬件要求服务器
- 9. Windows上用于生产服务器的良好SMTP服务器
- 10. git:推送和分段服务器和生产服务器
- 11. 为什么codeigniter中的加密工作在本地服务器而不是服务器上?
- 12. 本地主机上的子域与生产服务器下的CodeIgniter
- 13. 如何在生产服务器上运行Yard服务器?
- 14. 在生产服务器上运行faye服务器
- 15. 本地vs生产服务器上的php设置(laravel)
- 16. 生产服务器上ASP.NET MVC的ASPNETDB.MDF
- 17. Windows上的Rails生产Web服务器
- 18. 生产服务器上的Elmah
- 19. Laravel 5.2生产服务器上的TokenMisMatchException
- 20. 生产服务器上的更改
- 21. 从临时服务器和本地主机的代码测试访问生产服务器上的MySQL数据
- 22. Codeigniter - 无法加载生产服务器中的文件
- 23. wicked_pdf生产服务器
- 24. 搬到生产服务器
- 25. 禁止在导轨生产服务器上使用的资产服务器
- 26. 蒙戈副本本地服务器和公共服务器
- 27. 如何检查生产服务器上的Web服务
- 28. 本地服务器上的Active Directory和外部服务器上的Intranet
- 29. ASP.NET - 本地和生产服务器 - 控件ID差异
- 30. GIT添加生产服务器
是的,我有这些设置相同的服务器和开发机器。但他们不匹配登录和退出应用程序。代码在服务器和我的开发机器上是相同的。 – Karl 2010-12-22 04:52:54