搜索插件、代码仓与 APP 分类

captcha_solver 封面
插件详情v1.0.4

captcha_solver

captcha_solver 是一种用于解决各种类型验证码的服务(带文字的图片验证码、Recaptcha v2/v3 企业版/非企业版、Funcaptcha Arcoselabs、GeeTest 和 hCaptcha)

AndroidiOSmacOSWindowsLinux
近 30 天下载
55
喜欢数
30
Pub 分数
140

安装插件

flutter pub add captcha_solver

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

captcha_solver 包是一个专为 Flutter/Dart 设计的服务,旨在自动化解决各种类型的验证码,包括基于图像的文本验证码、Recaptcha v2/v3(企业版和非企业版)、Arcoselabs 的 Funcaptcha、GeeTest 以及 hCaptcha。该包可无缝集成到 Android、iOS、macOS、Windows 和 Linux 的跨平台应用中。通过简洁的 API 接口利用外部服务,简化了绕过机器人保护的工作流程。适用于测试、自动化或需要自动解决验证码的场景,支持多种验证码提供商,并在各平台上提供一致的处理方式。

适合场景

  • Web 表单的自动化测试
  • 机器人驱动的数据抓取
  • 开发环境中的用户身份验证绕过
  • 跨平台验证码解析
  • 简化自动化工作流

主要特点

  • 支持多种验证码类型
  • 跨平台兼容性
  • 简单 API 集成
  • 实时验证码解决
  • 安全的令牌处理

适合对象

  • 开发自动化工具的开发者
  • 需要验证码绕过的测试工程师
  • 需要大量表单提交的应用程序
  • 安全研究人员测试防护措施
  • 使用多个验证码提供商的项目

使用建议

  • 需要外部服务提供商
  • 可能违反某些网站的服务条款
  • 依赖第三方的可靠性
  • 不适合用于生产环境的安全强制执行
  • 潜在的法律和伦理问题

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

SCRAPTCHA.com

Captcha Solver

ScreenShot

To use the captcha solution you need to register on the resource and top up your balance - https://dashboard.scraptcha.com/fr/dashboard Documentation -https://scraptcha.com/documentation/

Features

Whether you need to autofill a large number of forms, for various purposes: web scraping, making unlimited edition purchases, performing repetitive tasks online, etc. But you quickly find yourself confronted with the CAPTCHAs resolution (which stands for Completely Automated Public Turing Test to tell Computers and Humans Apart) to prove that you are indeed a human and not a robot.

The solution to solve these CAPTCHAs and hijack them, but how? This is where CAPTCHas and reCAPTCHAs resolution services come in, such as scraptcha.com, which is an infallible, fast and efficient resolution service.

Getting started

You should ensure that you add the router as a dependency in your flutter project.

dependencies:
  captcha_solver: ^1.0.4

Usage

Image to Text

A normal CAPTCHA is an image containing distorted text that can only be read by humans. to solve this type of CAPTCHA the user is required to enter the text of the image. You can use imageMemoryToText() function for local images or imageLinkToText() for images from the site. YOUR_API_KEY : You can find the API key here ScreenShot

import 'package:captcha_solver/captcha_solver.dart';

void main() async {

  /// Initiate query Properties
  String apiKey = 'YOUR_API_KEY';
  String imageMemory = 'lib/captcha.jpg';
  String imageLink = 'https://api.vk.com/captcha.php?sid=1';
  /// Initiate CaptchaSolver
  CaptchaSolver captchaSolver = CaptchaSolver(apiKey);
  /// Example of the request
  Map inputs = {
    "clientKey": apiKey,
    "task": {
      "type": "ImageToTextTask",
      "body": imageMemory // or imageLink
    }
  };
  /// Get captcha solution
  Map response = await captchaSolver.imageMemoryToText(inputs); // Or imageLinkToText()
  print('response: $response');
  if(response['status']=='ready') {
    print(response['solution']['text']);
  }
}

reCAPTCHA v2

reCAPTCHA v2 requires the user to check the "I'm not a robot" box and can offer them an image recognition challenge. YOUR_WEBSITE_KEY : reCAPTCHA website key - for more details : https://scraptcha.com/documentation/ YOUR_API_KEY : You can find the API key here ScreenShot

import 'package:captcha_solver/captcha_solver.dart';

void main() async {
  /// Initiate query Properties
  String apiKey = 'YOUR_API_KEY';
  String websiteURL = 'http://mywebsite.com/recaptcha/test.php';
  String websiteKey = 'YOUR_WEBSITE_KEY';
  /// Initiate CaptchaSolver
  CaptchaSolver captchaSolver = CaptchaSolver(apiKey);
  /// Example of the request
  Map inputs = {
    "clientKey": apiKey,
    "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": websiteURL,
      "websiteKey": websiteKey,
      "isInvisible": false
    }
  };
  /// Get captcha solution
  Map response = await captchaSolver.recaptcha(inputs);
  print('response: $response');
  if(response['status']=='ready') {
    print(response['solution']['gRecaptchaResponse']);
  }
}


reCAPTCHA V3

reCAPTCHA v3 is somewhat similar to reCAPTCHA V2. reCAPTCHA V3 works in the background, does not require user interaction and generates a score based on user behavior. The higher the score, the more likely the user is human.

ScreenShot

import 'package:captcha_solver/captcha_solver.dart';

void main() async {

  /// Initiate query Properties
  String apiKey = 'YOUR_API_KEY';
  String websiteURL = 'http://mywebsite.com/recaptcha/test.php';
  String websiteKey = 'YOUR_WEBSITE_KEY';
 /// Initiate CaptchaSolver
  CaptchaSolver captchaSolver = CaptchaSolver(apiKey);
/// Example of the request
  Map inputs = {
  "clientKey": apiKey,
  "task": {
  "type": "RecaptchaV3TaskProxyless", // type of captcha
  "websiteURL": websiteURL,
  "websiteKey": websiteKey,
  "minScore": 0.3,
  "pageAction": "verify",
  "isEnterprise": false
  }
};
  /// Get captcha solution
  Map response = await captchaSolver.recaptcha(inputs);
  print('response: $response');
  if(response['status']=='ready') {
    print(response['solution']['gRecaptchaResponse']);
  }
}

FunCAPTCHA - Arkose Labs

This type of task solves the arkoselabs.com conundrum in our worker browsers. You submit the public key and the website address then you will receive a token when the task is completed. This is the token you will need to submit your forms with Arkoselabs captcha. ScreenShot


import 'package:captcha_solver/captcha_solver.dart';

void main() async {

  /// Initiate query Properties
  String apiKey = 'YOUR_API_KEY';
  String websiteURL = 'https://account.battle .net/creation/flow/creation-full';
  String websitePublicKey = 'YOUR_WEBSITE_KEY';
 /// Initiate CaptchaSolver
  CaptchaSolver captchaSolver = CaptchaSolver(apiKey);
/// Example of the request
  Map inputs = {
    "clientKey": "YOUR_API_KEY",
    "task": {
      "type": "FunCaptchaTaskProxyless",
      "websitePublicKey": websitePublicKey,
      "websiteURL": websiteURL
  }
};
  /// Get captcha solution
  Map response = await captchaSolver.recaptcha(inputs);
  print('response: $response');
  if(response['status']=='ready') {
    print(response['solution']['token']);
  }
}

hCAPTCHA

HCAPTCHA is a most popular reCAPTCHA alternative. The properties of this task are the same as reCAPTCHA except for the type property. ScreenShot

import 'package:captcha_solver/captcha_solver.dart';

void main() async {
  /// Initiate query Properties
  String apiKey = 'YOUR_API_KEY';
  String websiteURL = 'https://hcaptcha.com/';
  String websiteKey = 'YOUR_WEBSITE_KEY';
  /// Initiate CaptchaSolver
  CaptchaSolver captchaSolver = CaptchaSolver(apiKey);
  /// Example of the request
  Map inputs = {
    "clientKey": apiKey,
    "task": {
      "type": "HCaptchaTaskProxyless",
      "websiteURL": websiteURL,
      "websiteKey": websiteKey,
  
    }
  };
  /// Get captcha solution
  Map response = await captchaSolver.recaptcha(inputs);
  print('response: $response');
  if(response['status']=='ready') {
    print(response['solution']['gRecaptchaResponse']);
  }
}


Additional information

Scraptcha uses two methods to solve its CAPTCHAs: A CAPTCHA solving service based on these humans: The service has hired human workers to solve CAPTCHAs, which are constantly online. When you submit your CAPTCHA, Scraptcha passes it on to the human workers who solve the text and send it back. OCR (optical character recognition) solutions In this method, captcha solving is done automatically using OCR technology.

for more information : https://scraptcha.com/documentation/

所属分类

依赖

依赖清单 1 项

源码仓库

使用此插件的项目

暂无相关数据。