Google验证码ReCaptcha V3

因为工作的原因需要使用Google验证码ReCaptcha v3,所以我就上网了解了一下,下面是我的一些学习分享。

大家应该都是用过google的验证码,如

 这种情况的需要我们手动去选择,ReCaptcha V3则不需要了,不需要用户去手动的验证。

大白话:用户不用再选择哪些图里有飞机,哪些图里有汽车等。ReCaptcha V3 会在后台对用户的行为进行监测,然后会返回一个分数(0-1)之间,我们就可以自定义了,小于0.5的就是机器人,他们就需要被验证,验证手机号等。

1.首先是去reCaptcha官网网站:https://developers.google.com/recaptcha/

很不幸,这个网站需要翻墙,如果你没有能力,那就算了,因为我不能告诉你怎么翻墙。

标签随便写,这个无所谓 

选择第三版

域名可以写自己的域名,也可以用localhost去测试

所有者就是你的google账号了,自己去注册

2.提交之后就会显示两个密钥,一个是客户端的,一个是服务端的

他会提示你怎么去实现,我在这里写我用的实现方法 

3.前端页面html

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>谷歌ReCaptcha</title>
</head>
<body>
<button>点击我执行验证</button><script src="https://www.recaptcha.net/recaptcha/api.js?render=这里写你的客户端密钥"></script>
<script type="text/javascript">const CAPTCHA_CLIENT_SECRET = "这里也写你的客户端密钥";window.onload = () => {document.querySelector('button').addEventListener('click', () => {grecaptcha.execute(CAPTCHA_CLIENT_SECRET, {action: 'homepage'}).then(function(token) {console.log('客户端token:' + token);fetch('/validate?token=' + token, {method: 'GET'}).then(response => {if (response.ok){response.json().then(message => {console.log('服务端验证');console.log(message);});}});});});};
</script>
</body>
</html>

 关键的代码

grecaptcha.execute(CAPTCHA_CLIENT_SECRET, {action: 'homepage'}).then(function(token) {    //执行请求到google去获得一个takenconsole.log('客户端token:' + token);fetch('/validate?token=' + token, {  //将得到的请求发送到服务端,服务端做相应的处理method: 'GET'}).then(response => {if (response.ok){response.json().then(message => {console.log('服务端验证');console.log(message);});}});
}

4.后端代码

@RequestMapping("/validate")@ResponseBodypublic String check(HttpServletRequest request) {String checkCode = request.getParameter("token");String secret = "6LdTTf8cAAAAAJnW4jipqR0t03pG-84zpPwGPXfQ";String param = "secret="+secret+"&response="+ checkCode;String json = HttpSendUtil.instance().sendPost("https://www.recaptcha.net/recaptcha/api/siteverify", param, "UTF-8");return json;}

首先你会发现你没有这个HttpSendUtil,没关系,我有

package com.sendy.boot.controller;import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;public class HttpSendUtil {private HttpSendUtil() {}private static class HttpSendUtilInstance {private static final HttpSendUtil INSTANCE = new HttpSendUtil();}public static HttpSendUtil instance() {return HttpSendUtilInstance.INSTANCE;}public String sendPost(String sendUrl, String params, String encodType) {StringBuffer receive = new StringBuffer();HttpURLConnection URLConn = null;BufferedWriter bw = null;BufferedReader br = null;try {URL url = new URL(sendUrl);URLConn = (HttpURLConnection) url.openConnection();URLConn.setRequestMethod("POST");URLConn.setDoOutput(true);URLConn.setDoInput(true);URLConn.setUseCaches(false);URLConn.setAllowUserInteraction(true);HttpURLConnection.setFollowRedirects(true);URLConn.setInstanceFollowRedirects(true);URLConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");URLConn.setRequestProperty("Content-Length", String.valueOf(params.getBytes().length));DataOutputStream dos = new DataOutputStream(URLConn.getOutputStream());dos.writeBytes(params);br = new BufferedReader(new InputStreamReader(URLConn.getInputStream(), encodType));String line;while ((line = br.readLine()) != null) {receive.append(line).append("\r\n");}br.close();} catch (java.io.IOException e) {receive.append("访问产生了异常-->").append(e.getMessage());e.printStackTrace();} finally {if (bw != null) {try {bw.close();} catch (IOException ex) {bw = null;ex.printStackTrace();} finally {if (URLConn != null) {URLConn.disconnect();URLConn = null;}}}if (br != null) {try {br.close();} catch (IOException e) {br = null;throw new RuntimeException(e);} finally {if (URLConn != null) {URLConn.disconnect();URLConn = null;}}}}return receive.toString();}public String sendGet(String sendUrl, String encodType) {StringBuffer receive = new StringBuffer();BufferedReader br = null;HttpURLConnection URLConn = null;try {URL url = new URL(sendUrl);URLConn = (HttpURLConnection) url.openConnection();URLConn.setDoInput(true);URLConn.setDoOutput(true);URLConn.connect();URLConn.getOutputStream().flush();br = new BufferedReader(new InputStreamReader(URLConn.getInputStream(), encodType));String line;while ((line = br.readLine()) != null) {receive.append(line).append("\r\n");}} catch (IOException e) {receive.append("访问产生了异常-->").append(e.getMessage());e.printStackTrace();} finally {if (br != null) {try {br.close();} catch (java.io.IOException ex) {br = null;ex.printStackTrace();} finally {if (URLConn != null) {URLConn.disconnect();URLConn = null;}}}}return receive.toString();}
}

上面这个代码直接用就可以

5.返回的数据

  1. action: "homepage"
  2. challenge_ts: "2021-10-30T03:11:43Z"  //验证的时间
  3. hostname: "localhost"  //请求的地址
  4. score: 0.9  //验证得到的分数 0-1
  5. success: true  //是否验证成功

 我们可以对这个score进行自定义处理,比你得分低于0.5,你就让他进行验证,怎么验证取决于你自己

 上面的地址我都是给你们替换过的,为什么要替换?   因为你不能翻墙啊

www.google.com  替换成  www.recaptcha.net

这一步你不需要做,我在上面已经换好了。

拜拜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44636.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Google reCAPTCHA进行人机验证

reCAPTCHA是Google公司推出的一项验证服务&#xff0c;使用十分方便快捷&#xff0c;在国外许多网站上均有使用。它与许多其他的人机验证方式不同&#xff0c;它极少需要用户进行各种识图验证。 它的使用方式如下如所示&#xff0c;只需勾选复选框即可通过人机验证。 虽然简单…

解决Google人机验证reCaptcha失效问题

安装Redirector插件 Firefox浏览器1. 下载Firefox浏览器&#xff0c;并安装插件2. 打开Redirector插件的界面3. 弹出如下界面4. 按照如下形式填写 Chrome浏览器 Firefox浏览器 1. 下载Firefox浏览器&#xff0c;并安装插件 2. 打开Redirector插件的界面 3. 弹出如下界面 4. 按…

.NET 使用 Google 验证码(Google reCAPTCHA)

一. 前言 前段时间&#xff0c;发现注册受到了恶意攻击&#xff0c;一天注册量10w&#xff0c;接口已从IP做了限制&#xff0c;但不管用&#xff0c;对方每一次发起的IP都不一样&#xff1b;紧急做了滑动验证码&#xff0c;虽然上线立马就阻止了恶意请求&#xff1b; 但好景不…

GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(转)

前言: 为了防止机器人攻击&#xff0c;国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好&#xff0c;但是…对于国内用户就不怎么友好了。究其原因&#xff0c;则是国内网络全线屏蔽 Google 服务&#xff0c;导致 reCaptcha 完全加载不出来。这…

注册Maltego显示ReCaptcha is not valid,解决Google验证码服务reCaptcha失效问题

注册Maltego显示ReCaptcha is not valid&#xff0c;解决Google验证码服务reCaptcha失效问题 Maltego注册地址&#xff1a; https://www.paterva.com/web7/community/community.php 1.打开火狐浏览器&#xff0c;点击右上角-打开菜单-添加附件-寻找更多附加组件&#xff0c;查询…

巴比特 | 元宇宙每日必读:奋起直追,谷歌内部发布“红色指令”,要求几个月内将生成式人工智能技术集成到所有主要产品中...

摘要&#xff1a;据新浪科技报道&#xff0c;OpenAI的突然成功让谷歌母公司Alphabet不得不加快速度&#xff0c;试图在这个领域迎头赶上。一名知情人士透露&#xff0c;谷歌高级管理层已经宣布“红色指令”&#xff0c;其中要求谷歌的所有重要产品&#xff0c;包括用户数超过10…

和数集团助力开启区块链应用新时代

今年&#xff0c;中共中央、国务院等国家层面发布政策6条&#xff0c;不仅在全国统一大市场的广泛性政策中提及&#xff0c;并同时涵盖了区块链在数字文化、提振消费、交通运输以及促稳经济等多个层面的应用。可以看出&#xff0c;我国区块链产业呈现蓬勃发展之势。政策、技术、…

能链科技携手中智关爱通共建基于区块链的新人力服务网络

原文发布于 2020-06-19 原“能链科技”现更名为“零数科技” 6月16日上午&#xff0c;零数科技&#xff08;原“能链科技”&#xff09;与中智关爱通&#xff08;上海&#xff09;科技股份有限公司&#xff08;以下简称关爱通&#xff09;签署战略合作协议。双方将结合能链科技…

云图说丨华为云区块链引擎服务:高安全的区块链技术服务平台,轻松部署,快速上链

摘要&#xff1a;华为云区块链引擎服务以BCS自主研发区块链内核为底座&#xff0c;结合可信硬件&#xff0c;具有高安全、高性能、高可扩展、强隐私保护等特点&#xff0c;满足企业级和金融级的可信和协同要求。 本文分享自华为云社区《【云图说】 第251期 华为云区块链引擎服务…

基于区块链技术的智慧供应链创新应用

随着区块链技术的不断成熟&#xff0c;智慧供应链得到了长足的发展&#xff0c;通过基于华为云的几个智慧供应链和物流行业的应用创新项目&#xff0c;诠释在实际应用场景中如何通过区块链和物流面临的调整和困难&#xff0c;达到优化流程、提高效率、降低成本的效果。 随着区…

量化策略初探——使用tushare进行沪深300ETF双均线策略

使用tushare采集沪深300ETF数据&#xff0c;并对沪深300ETF采用简单移动平均、指数移动平均、进行双均线策略&#xff0c;最后使用backtrader进行回测。 一、基本概念 双均线策略&#xff1a;运用两条不同周期的移动平均线&#xff0c;即短周期移动平均线和长周期移动平均线的…

【python量化】广发证券研报:Transformer 架构下的量价选股策略

以下内容来自知乎链接&#xff1a; https://zhuanlan.zhihu.com/p/620820228 作者&#xff1a;日暮途远 已获得作者同意转载。 最近看到了一篇广发证券的关于使用Transformer进行量化选股的研报&#xff0c;在此进行一个复现记录&#xff0c;有兴趣的读者可以进行更深入的研究…

MT5 EA交易期货-市价单开仓平仓

该例子演示了EA如何报期货市价单开仓&#xff0c;开仓后10秒钟报市价单平仓。 在外汇交易里没有市价单&#xff0c;而期货交易有市价单&#xff0c; 市价单报单时不指定价格&#xff0c;让交易所自行成交&#xff0c;就是做多无论多贵都买&#xff0c;做空无论多便宜都卖&…

ETF大小盘轮动策略回测分析

从前面的ETF基金定投策略回测和周内效应分析文章中可以看到&#xff0c;代表大盘指数的沪深300ETF基金510300和代表小盘的创业板ETF基金159915的收益在长期来看差别较大。但是单独定投小盘指数收益高&#xff0c;但是回撤比较大&#xff1b;单独定投大盘指数回撤也不小&#xf…

量化基金 获取基金持仓情况;获取优秀基金人气组合持仓基金情况

通过点击显示全部ajax接口加载获取数据 import requests import re from lxml import etree import csvdef get_stock_lists(id):url2 f"https://fundf10.eastmoney.com/FundArchivesDatas.aspx?typejjcc&code{id}&topline10&year2021&month3&rt0…

TensoRT量化第四课:PTQ与QAT

目录 PTQ与QAT注意事项一、2023/5/8更新二、2023/5/12更新前言1. TensorRT量化2. PTQ3. QAT4. QAT实战4.1 环境配置4.2 pytorch_quantization简单示例4.3 自动插入QDQ节点4.4 手动插入QDQ节点4.5 自定义层量化4.6 官方案例 总结 PTQ与QAT 注意事项 一、2023/5/8更新 新增手动…

Vicuna-13B量化模型单GPU可跑

链接在这&#xff08;需要科学上网&#xff09; Vicuna-13B: Best Free ChatGPT Alternative According to GPT-4 &#x1f92f; | Tutorial (GPU) 有人在B站转了人家的视频 ChatGPT&#xff1a;在你的本地电脑上运行Vicuna-13B &#x1f92f;|教程 (GPU) 下面就是部署的步骤…

“Hey Siri” 背后的黑科技大揭秘!

作者 | Vishant Batta 译者 | 苏本如&#xff0c;责编 | 伍杏玲 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 以下是译文&#xff1a; 如今苹果手机可随时检测并回答“Hey Siri”命令&#xff0c;有人可能会想&#xff0c;它是不是在随时记录我们的日常生活对…

ChatGLM-RM(Reward Model)实现代码逐行讲解

这里我们尝试通过RM训练让模型学会从给定上下文中提取信息&#xff0c;来进行RM模型的实践。你可以从下面链接获取代码 GitHub - Pillars-Creation/ChatGLM-RLHF-LoRA-RM: ChatGLM-6B添加了RLHF的实现&#xff0c;以及部分核心代码的逐行讲解 ,实例部分是做了个新闻短标题的生成…

wochao!chatgpt 真的可以提高我的工作效率!

正确使用指南&#xff1a; https://www.explainthis.io/zh-hant/chatgpt/guidehttps://github.com/PlexPt/awesome-chatgpt-prompts-zh/