如何使用reCaptcha(2.0版本)来做网站验证码

reCaptcha是Google开发的验证码工具。使用十分简单,本文介绍的是其2.0版本的使用方法。 

  1. 登陆你的Google账户,没有的话是用不了的。
  2. 在这里来申请一对keyhttps://www.google.com/recaptcha/admin ,如下图

    一个Google账户可以申请很多key,第一个label随便填,第二个是你的域名。我这里本地测试,直接输入localhost即可。
  3. 申请成功后可以看到两个key,一个是Site key,可以公开,一个是你自己的私key
  4. Client端设置:随便写一个HTML网页,需要带一个form,用来提交表单。在表单内想显示验证码的地方输入

    [html]  view plain  copy
    1. <span style="font-size:14px;">        <div class="g-recaptcha" data-sitekey="Yoursitekey"></div></span>  

    在</head>前输入

    [html]  view plain  copy
    1. <span style="font-size:14px;"><script src='https://www.google.com/recaptcha/api.js'></script></span>  

    如下:

    [html]  view plain  copy
    1. <span style="font-size:14px;"><!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <title></title>  
    5.     <meta charset="utf-8">  
    6.     <meta name="viewport" content="width=device-width, initial-scale=1">  
    7.       
    8.     <script src='https://www.google.com/recaptcha/api.js'></script>  
    9. </head>  
    10. <body>  
    11.   
    12.     <form action="confirm.php" method="post">  
    13.         <div class="g-recaptcha" data-sitekey="yoursitekey"></div>  
    14.           
    15.         <p><button class="btn btn-primary" type="submit">Register</button>  
    16.     </form>  
    17. </body>  
    18. </html>  
    19. </span>  


    这样的的主页将产生

    点击蓝色的方框即可开始验证

    如果sitekey与域名不匹配的话会显示


  5. 验证完毕并提交表单后,将会post一个g-recaptcha-response 值。这个值用来和Google服务器通信验证验证码是否正确。

    将这个值通过post方式发送到 https://www.google.com/recaptcha/api/siteverify 将获得一个jason格式结果,如下:

    即完成了验证。
    下面附上完整的验证代码

    [php]  view plain  copy
    1. <span style="font-size:14px;"><!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <title></title>  
    5.     <meta charset="utf-8">  
    6.     <meta name="viewport" content="width=device-width, initial-scale=1">  
    7.     <?php  
    8. function send_post($url$post_data)  
    9. {  
    10.     $postdata = http_build_query($post_data);  
    11.     $options = array(  
    12.         'http' => array(  
    13.             'method' => 'POST',  
    14.             'header' => 'Content-type:application/x-www-form-urlencoded',  
    15.             'content' => $postdata,  
    16.             'timeout' => 15 * 60 // 超时时间(单位:s)  
    17.         )  
    18.     );  
    19.     $context = stream_context_create($options);  
    20.     $result = file_get_contents($url, false, $context);  
    21.     return $result;  
    22. }  
    23.               
    24. $post_data = array(          
    25. 'secret' => 'yoursecretkey',          
    26. 'response' => $_POST["g-recaptcha-response"]    );  
    27.     $recaptcha_json_result = send_post('https://www.google.com/recaptcha/api/siteverify'$post_data);     
    28.  $recaptcha_result = json_decode($recaptcha_json_result);     
    29. //在这里处理返回的值   
    30. //var_dump($recaptcha_result);      
    31. ?>  
    32. </head>  
    33. <body>  
    34. echo $recaptcha_result;  
    35. </body>  
    36. </html>  
    37.   
    38.     </span>  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Java后台登录中使用Google验证码,可以使用Google reCAPTCHA API。reCAPTCHA是一种反垃圾邮件技术,旨在验证用户是否为人类,以防止自动化攻击。 以下是使用Google reCAPTCHA API实现Java后台登录的步骤: 1. 注册Google reCAPTCHA API并获取站点密钥和私钥。 2. 在登录页面中嵌入reCAPTCHA组件。可以使用reCAPTCHA Java客户端库来生成HTML代码和JavaScript代码。 3. 在后台服务器中验证reCAPTCHA响应。可以使用reCAPTCHA Java服务器库来验证响应。 4. 如果reCAPTCHA验证成功,则继续进行正常的登录流程。否则,显示错误消息并要求用户重新验证。 下面是一个简单的Java后台登录代码示例,其中包括使用Google reCAPTCHA API进行验证的部分: ```java public class LoginServlet extends HttpServlet { private static final String SITE_KEY = "your_site_key"; private static final String SECRET_KEY = "your_secret_key"; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String recaptchaResponse = request.getParameter("g-recaptcha-response"); // Verify reCAPTCHA response ReCaptchaImpl reCaptcha = new ReCaptchaImpl(); reCaptcha.setPrivateKey(SECRET_KEY); ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(request.getRemoteAddr(), recaptchaResponse); if (reCaptchaResponse.isValid()) { // Perform login logic if (isValidUser(username, password)) { // Redirect to home page response.sendRedirect("home.jsp"); } else { // Show error message request.setAttribute("error", "Invalid username or password"); request.getRequestDispatcher("login.jsp").forward(request, response); } } else { // Show error message request.setAttribute("error", "Invalid reCAPTCHA response"); request.getRequestDispatcher("login.jsp").forward(request, response); } } private boolean isValidUser(String username, String password) { // Perform user validation logic } } ``` 在上面的代码中,我们使用reCAPTCHA Java客户端库生成了reCAPTCHA组件的HTML代码和JavaScript代码。然后,在doPost方法中,我们使用reCAPTCHA Java服务器库验证reCAPTCHA响应。如果验证成功,则继续进行正常的登录流程。否则,我们显示错误消息并要求用户重新验证。 需要注意的是,由于reCAPTCHA是由Google提供的,因此需要确保与Google reCAPTCHA API的通信是安全的。可以使用HTTPS协议来保护数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值