mcrypt可以执行crypt()支持的相同算法吗?

时间:2010-12-02 21:56:00

标签: php hash mcrypt crypt sha512

我有一个在PHP 5.3上运行的应用程序,它使用PHP的crypt()函数存储密码哈希值。但是,默认情况下,使用的哈希类型(SHA 512)在我正在使用的运行PHP 5.2的服务器上不可用。我已经看到使用mcrypt你可以获得更大的灵活性,但使用起来也更复杂。

是否可以使用PHP的mcrypt函数获得与crypt相同的结果(使用SHA512盐)?

因此,如果我使用SHA512盐输入“test”,则在使用crypt()以及使用mcrypt()时,加密数据应该相同。

如果不可能,有人可以给我建议还有什么可做的吗?不幸的是,升级到PHP 5.3不是一个选项(它是一个云服务器,我没有时间为其编写脚本)。

2 个答案:

答案 0 :(得分:2)

  

任何人都可以告诉我是否可以使用php5的mcrypt函数来获得与crypt相同的结果

没有。 Mcrypt提供加密解密的功能。 crypt尽管名称具有欺骗性,但仍为哈希提供了功能。这些不是同一个任务。 Mcrypt不提供任何散列函数,您想要使用的算法(SHA-512)是一种散列算法。

你不能用Mcrypt哈希密码。这不是它的工作。它的作用和crypt是不同的,不重叠。

答案 1 :(得分:0)

不幸的是,MCrypt没有SHA512密码 - 您可以在这里查看密码列表:

http://www.php.net/manual/en/mcrypt.ciphers.php