OpenID PHP库Janrain,并将Auth_OpenID_RAND_SOURCE设置为null

时间:2010-03-08 22:13:25

标签: php openid janrain

我正在考虑将OpenID用于即将开展的项目。在阅读了Janrain的OpenID PHP实现的一些教程并查看源代码后,我将其上传到我的服务器并测试了我的Google ID附带的示例脚本,我收到了一些关于CryptUtil.php中的Auth_OpenID_RAND_SOURCE未设置的错误正常。我通过Google找到了一个答案,将其定义为null而不是默认的/ dev / urandom。我的问题是,这显然不安全吧?并且/ dev / urandom是linux中的随机数生成器吗?在家用Windows机器上使用/ dev / urandom来搞乱实现会有什么好的替代方法?

1 个答案:

答案 0 :(得分:1)

好吧,CryptUtil.php说的是班级

     * Attempts to use a cryptographically secure (not predictable)
     * source of randomness if available. If there is no high-entropy
     * randomness source available, it will fail. As a last resort,
     * for non-critical systems, define
     * Auth_OpenID_RAND_SOURCE as null, and
     * the code will fall back on a pseudo-random number generator.

因此,如果将此常量定义为NULL,并且它无法找到任何其他熵源,这将意味着您根本没有熵源 - 基本上,将不会加密。以下是关于/ dev / urandom的wikipedia所说的内容:

/ dev / random的对应物是/ dev / urandom(“解锁”/非阻塞随机源[4]),它重用内部池以产生更多的伪随机位。这意味着调用不会阻塞,但输出可能包含的熵少于/ dev / random的相应读取。目的是充当加密安全的伪随机数生成器。这可用于不太安全的应用程序。

对于Win32上的熵源,PHP用户空间似乎没有很多好的选项。