對於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