Mcrypt PHP - 模块初始化失败

4

如何在PHP上安装mcrypt模块?

我需要在WAMPServer上安装mcrypt扩展,以便可以对密码使用IDEA加密。我不能使用其他类型的加密,因为我正在与大型数据库交互,该数据库已经在密码上使用了IDEA加密。

我已经做了很多关于在PHP上安装mcrypt扩展的研究。我看到有两个主要步骤:

  1. 安装扩展
  2. 在php.ini文件中引用算法和模式所在的目录

第1步我已经成功完成,因为它不再给出致命错误:“调用未定义函数mcrypt_encrypt...”

第2步是我遇到问题的地方,因为现在当我调用mcrypt_encrypt函数时,php返回警告:“警告:mcrypt_encrypt():模块初始化失败...”

我将包含所有算法和模式(libmcrypt)的目录放在php扩展文件夹中,然后在php.ini中写入以下两行:

mcrypt.algorithms_dir = "c:/wamp/bin/php/php5.4.3/ext/libmcrypt/modules/algorithms"

mcrypt.modes_dir = "c:/wamp/bin/php/php5.4.3/ext/libmcrypt/modules/modes"

然后我重新启动了WAMPServer,但是它给出了警告:"PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.4.3/ext/php_mcrypt.dll' - The specified module could not be found."

我已经在网上搜寻了关于如何安装mcrypt扩展的教程,但是找不到任何相关的资料!所以我来到老牌的StackOverflow,希望有人能够帮助我吗?


我没有一个libmcrypt.dll文件...你是指php_mcrypt.dll吗,还是我缺少了什么? - Scott Hallauer
还是不行!我下载了那个文件并将其放置在apache bin目录和php5.4.3目录中。然后我更新了php.ini以指向这个位置...但它仍然给我同样的错误!! phpinfo显示mcrypt已启用...你有其他建议吗,也许有关此的教程? - Scott Hallauer
实际上,它现在正在工作...只是没有IDEA加密!您知道IDEA的下载链接吗? - Scott Hallauer
我已经重启了Apache 3次,但是print_r(mcrypt_list_algorithms());返回Array ( [0] => cast-128 [1] => gost [2] => rijndael-128 [3] => twofish [4] => cast-256 [5] => loki97 [6] => rijndael-192 [7] => saferplus [8] => wake [9] => blowfish-compat [10] => des [11] => rijndael-256 [12] => serpent [13] => xtea [14] => blowfish [15] => enigma [16] => rc2 [17] => tripledes [18] => arcfour )没有列出任何IDEA... - Scott Hallauer
1个回答

1

建议1:

libmcrypt.dll 对于 Apache/php_mcrypt.dll 不可用。我们应该先检查 phpinfo()mcrypt 可用

建议2:

print_r(mcrypt_list_algorithms()); 应该显示 IDEA 算法……因为它不是免费算法(尽管专利在2011年5月到期),可能没有包含……IDEA 算法未列为可用

建议3:

你可能不会喜欢听到这个消息,但是我所阅读的所有内容都表明,你必须自己构建PHP(首先使用IDEA构建mcrypt,然后使用MCRYPT构建php),在Windows上会有些麻烦(没有像Linux那样内置所有默认编译器等)。作为替代方案,你可以寻找一个包含MCRYPT/IDEA的Windows PHP二进制版本。看起来有些版本包括它(旧版本、64位版本、VC9版本)。不幸的是,人们在安装指南/讨论中提出了一些想法,因此很难找到关于是否包含IDEA算法的文档;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接