Php codeigniter加密在新服务器上返回错误

Php codeigniter加密在新服务器上返回错误,php,mysql,codeigniter,encryption,Php,Mysql,Codeigniter,Encryption,我在一个旧的linux服务器上有一个数据库,它保存着我的客户端登录信息。用户名和密码,使用CodeIgniter加密库加密。我正在改变服务器到一个新的Linux服务器的中间。我已将站点和数据库转移到新服务器。该站点获取输入的用户名和密码,从新服务器上的数据库中提取密码,解密密码并将其与输入的密码进行比较。问题是,在新服务器上,返回值完全不同,并且包含许多特殊字符,因此密码永远不匹配!我以为它是新数据库的字符集,因为它被设置为UTF8,而我的旧数据库是latin1,但我改变了这个,它完全一样。两台

我在一个旧的linux服务器上有一个数据库,它保存着我的客户端登录信息。用户名和密码,使用CodeIgniter加密库加密。我正在改变服务器到一个新的Linux服务器的中间。我已将站点和数据库转移到新服务器。该站点获取输入的用户名和密码,从新服务器上的数据库中提取密码,解密密码并将其与输入的密码进行比较。问题是,在新服务器上,返回值完全不同,并且包含许多特殊字符,因此密码永远不匹配!我以为它是新数据库的字符集,因为它被设置为UTF8,而我的旧数据库是latin1,但我改变了这个,它完全一样。两台服务器上的站点相同,因此加密密钥相同。我完全困惑不解

解密前从数据库返回的值是正确的


我知道这不是进行身份验证的最佳方式,我计划对其进行更改,但请不要把这个问题当作一个机会来告诉我这种方式有多糟糕。。。我只需要让它工作:)

这可能是服务器配置问题

新服务器是否有
Mcrypt
支持/启用

您可以在解码之前尝试运行
$this->encrypt->encode\u from\u legacy
,查看是否存在兼容性问题

更新:

Codeigniter将使用mcrypt进行编码/解码。如果未启用此扩展,它将使用异或


这可能是你的问题。询问您的主机提供商关于启用所需的(检查源文件)php扩展名的问题

我现在就试试。谢谢。我收到一个错误:
遇到一个PHP错误严重性:注意消息:使用未定义的常量MCRYPT_MODE_ECB-假定为“MCRYPT_MODE_ECB”文件名:libraries/Encrypt.PHP行号:188
这是否意味着新服务器没有MCRYPT支持/启用?看起来是这样的。检查您的错误日志应用程序/日志/您可能禁用了一些扩展,因此解码不匹配。我已向他们发送了一封电子邮件。谢谢你的帮助。我像往常一样,在配置文件中将错误日志记录设置为1。它没有记录,这让我很烦恼。我将报告我的服务器人员的意见。