对于OpenID智能模式,该规范使用Diffie-Hellman密钥交换。我想知道公钥和私钥是否可以重用(假设它们没有被入侵),或者是否应该为每个请求生成它们。我使用PHP的OpenSSL库(我的代码:$key = openssl_pkey_new(array('private_key_type' => OPENSSL_KEYTYPE_DH));
)来生成密钥,并且速度非常慢(生成密钥的平均时间为22秒 - 对于网站来说非常不可接受)。如果密钥不能被重用,有什么更快的方法可以使用OpenSSL生成密钥?我宁愿不要手动执行,因为依赖数学库等实施OpenID客户详细信息
编辑:为了清楚,我在寻找答案中的两件事:我可以在OpenID关联模式中重用Diffie-Hellman密钥,如果不是,那么使用OpenSSL生成密钥的方法比openssl_pkey_new()
更快,因为这需要很长时间。
WOW,你为什么不使用OpenID库,而不是自己做OpenID交易? – timdream 2011-01-24 04:21:07
因为a)没有满足我的需求和b)我不喜欢使用我不明白的东西。 JanRain库的设计非常可怕,并且在我的设置中加载速度很慢 - 更不用说它不支持PHP 5.3.5(我不会妥协)。 LightOpenID在整个地方使用preg而不是正确的XML DOM方法,这让我感到不知所措(更不用说_still_不支持智能模式身份验证)。没有支持PHP 5.3.5和智能模式身份验证的库。 – 2011-01-24 04:40:07
关于Zend Framework OpenID有什么疑问? http://framework.zend.com/manual/en/zend.openid.consumer.html – Marc 2011-01-31 23:24:19