2010-08-10 30 views
4

reCAPTCHA需要公鑰和私鑰才能在網站中實現。它還需要reCAPTCHA密鑰,具體取決於網站。這背後的原因是什麼?公鑰和私鑰是否會影響reCAPTCHA中顯示的文字?我知道我可以將公鑰和私鑰設置爲GLOBAL,其中可以用於其他域但是爲什麼甚至首先需要密鑰?公鑰和私鑰對reCAPTCHA有什麼用處?

+0

添加到此。我一直致力於在MVC 3項目中實現reCaptcha,在客戶端,控制器將答案的值發送給reCaptcha服務器,然後當我的表單數據到達服務器端時,我用私鑰調用reCaptcha服務器,但沒有任何否則驗證請求。我想知道如果我有兩個人同時提交該表單,它如何知道哪個請求發送了哪個答案? – 2012-10-18 14:35:18

回答

5

好的。這是我的猜測,不能保證。

  1. 您的公鑰在生成客戶端頁面時是必需的。
  2. 客戶端使用此公鑰向recaptcha請求:圖像,相應的正確答案和可能的id。當然,答案和ID使用公鑰加密。 (所以客戶端無法知道答案)
  3. 答案中的用戶類型,將其發送到您的服務器。
  4. 您有:{id,answer}使用公鑰加密。您將私鑰和此加密郵件發送到recaptcha服務器。
  5. recaptcha解密消息,揭示答案和id,並檢查它們是否匹配。
  6. 它告訴你的服務器檢查結果。

注:

  1. 如果用戶發送他自己的reCAPTCHA的公鑰,檢查將不會成功,因爲你的私鑰不符合他的公鑰工作。
  2. 該方案證明您的服務器確實是接受recaptcha答案的人。