【问题标题】:How to check if installed OpenSSL version is >= 0.9.8k如何检查安装的 OpenSSL 版本是否 >= 0.9.8k
【发布时间】:2012-03-30 10:03:59
【问题描述】:

我有一个 PHP 5.x 脚本,它需要 OpenSSL 0.9.8k 或更高版本。

关于OpenSSL,我发现了以下两个相关的常量:

OPENSSL_VERSION_TEXT (with value 'OpenSSL 1.0.0c 2 Dec 2010')
OPENSSL_VERSION_NUMBER (with value '268435519')

不幸的是,我不知道如何对这些值进行上述检查。

【问题讨论】:

    标签: php openssl


    【解决方案1】:

    版本 0.9.8k 的源有一个常量 OPENSSL_VERSION_NUMBER0x009080bf

    <?php
    
    if(OPENSSL_VERSION_NUMBER < 0x009080bf) {
        echo "OpenSSL Version Out-of-Date";
    } else {
        echo "OpenSSL Version OK";
    }
    
    ?>
    

    【讨论】:

    • 感谢您的回答。仅针对新手:0x009080bf 是什么意思?或者,在我的情况下,为什么 '268435519' 等于 'OpenSSL 1.0.0c 2 Dec 2010' ?
    • @HomeCoder: 268435519 是十六进制的0x1000003f0x1000003f = 1[0].0[0].0[0],而0x009080bf = 0[0].9[0].8[0]
    • 0x009080bf 另一种表示数字的方式(十六进制表示法)。十进制等效值为 9470143。OpenSSL 的每个新版本都带有一个严格高于之前版本的数字,因此您可以执行此类版本检查。文本供人类阅读(不能与 进行比较)。
    【解决方案2】:

    如果你喜欢单行命令:

    php -r "echo OPENSSL_VERSION_NUMBER;"
    

    【讨论】:

    • 如果您想要人类可读的输出,OPENSSL_VERSION_TEXT 会更有帮助。
    【解决方案3】:

    printInfo() 输出应该告诉你是否支持 openSSL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 2019-06-28
      • 2010-09-23
      • 2016-12-18
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      相关资源
      最近更新 更多