【问题标题】:Get crypt() Blowfish results in PHP 5.3 identical to those generated by PHP 5.2在 PHP 5.3 中获取 crypt() Blowfish 结果与 PHP 5.2 生成的结果相同
【发布时间】:2011-01-22 22:40:21
【问题描述】:

在 PHP 5.3 中是否有办法获得与 PHP 5.2 生成的结果相同的 crypt() 河豚(以 $2a$ 开头的盐)结果?在 5.3 中,Zend 在内部实现了所有加密算法,因此产生了不同的结果。此外,在 5.3 中,河豚需要一个成本参数。

基本上,有没有办法使用命令行程序调用 PHP 5.2 中用于加密的任何系统机制?

注意:服务器在 Linux 上,必须是可移植的发行版。

【问题讨论】:

    标签: php encryption


    【解决方案1】:

    内部实现应该与外部操作系统实现完全兼容。

    如果没有提供成本参数,大概操作系统实现(libxcrypt?)有一个默认值 - 你只需要追踪它是什么!

    【讨论】:

    • 经过进一步调查,我发现旧服务器(运行 5.2)没有 Blowfish 功能,所以当我将代码复制到我的测试服务器(没有系统 Blowfish,但有自从它运行 5.3 以来就有 Zend 的河豚),它给了我实际的河豚结果。标记为答案,因为您让我进行了更多调查。谢谢。
    【解决方案2】:

    也许通过mcrypt

    【讨论】:

    • 可能,但我需要知道 crypt() 在 PHP 5.2 中使用的所有参数,以及盐如何应用于密文。
    【解决方案3】:

    无论您使用哪个 PHP 版本,crypt();函数将产生相同的结果。 因为它是 AES 实现

    【讨论】:

    • 对不起,根据文档和我自己的实验,这根本不正确。您可以根据传递的 salt 中的某些关键字符从几种不同的算法中进行选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多