• Stars
    star
    237
  • Rank 169,885 (Top 4 %)
  • Language
    C#
  • Created almost 9 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于C#.NET异步图形验证码识别组件(集成了若快、优优云、打码兔、云打码等平台,准确率95%,速度2-6秒)采用策略设计模式

验证码识别

异步图形验证码识别程序(集成了若快、优优云、打码兔、云打码等人工打码平台),很多人问为什么要在Decoder中使用反射功能获取策略类,这是因为使用了策略设计模式,便于限制其他开发调用者了解内部策略细节。当然也可以做成直接从外部传递实例化的策略类来实现,各种方式都有利有弊,请自己权衡修改。

主要特性

  • 采用策略设计模式分离各个打码平台;
  • 支持异步方式多并发识别;
  • 识别完成后自动事件通知;
  • 反射方式获取识别策略;
  • 人工识别准确率高达95%,平均速度在2-6秒左右;

运行截图

验证码示例

控制台运行示例

当前集成了哪些第三方平台?

示例代码

static class Program
{
    static void Main(string[] args)
    {
        //第一个参数是第三方平台
        //第二个参数是平台账号信息,若此处不设置Account,则需要在策略代码中设置默认值
        var decoder = new Decoder(Platform.RuoKuai, new Account
        {
            SoftId = 0, // 软件ID(此ID需要注册开发者账号才可获得)
            TypeId = 0, // 验证码类型(四位字符或其他类型的验证码,根据各平台设置不同值)
            SoftKey = null, //软件Key (此Key也需要注册开发者账号才可获得)
            UserName = null, //账号(此账号为打码平台的普通用户账号,开发者账号不能进行图片识别)
            Password = null //密码
        });
        decoder.OnStart += (s, e) =>
        {
            Console.WriteLine("验证码("+e.FilePath+")识别启动……");
        };
        decoder.OnCompleted += (s, e) =>
        {
            Console.WriteLine("验证码(" + e.FilePath + ")识别完成:" + e.Code + ",耗时:" + (e.Milliseconds/1000) + "秒,线程ID:"+e.ThreadId);
        };
        decoder.OnError += (s, e) =>
        {
            Console.WriteLine("验证码识别出错:" + e.Exception.Message);
        };
        for (var i = 1; i <= 3; i++)
        {
            decoder.Decode("c:\\checkcode"+i+".png");
        }
        Console.ReadKey();
    }
}

安装方法

  • 首先肯定是要去上面这些平台中的一个注册下账号(开发者账号和普通账号都需要注册);
  • 其次是将开发者账号中的软件ID、软件Key复制出来;
  • 然后登陆普通账号充值1~10元;
  • 接着将ThirdPartLibrary文件夹下的DLL类库复制到Wesley.Component.Captcha.Example项目下的bin\debug目录下;
  • 若该项目下没有bin\debug文件夹,请重新生成解决方案后再复制过去;
  • 最后运行Wesley.Component.Captcha.Example示例项目,按注释设置软件ID、软件Key、账号、密码、验证码类型就可以开始识别了;

如何增加新的验证码平台?

  • 在项目里的Strategies文件夹中创建新平台的文件夹,名字随意例如:YouYouYun;
  • 在YouYouYun文件夹中创建一个继承至IStrategy接口并且后缀为Strategy的策略类如:YouYouYunStrategy.cs;
  • 按照其他文件夹中策略类中的实现方式来实现这个类,如果第三方平台有DLL记得复制到bin\debug目录下去;
  • 修改项目中的Platform.cs文件,增加新的枚举类型YouYouYun;
  • 程序实例化时将自动查找包含YouYouYun关键字的策略类并实例化,调用其识别方法;

More Repositories

1

Simple-Web-Crawler

基于C#.NET的简单网页爬虫,支持异步并发、切换代理、操作Cookie、Gzip加速。
C#
292
star
2

Strong-Web-Crawler

基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构。
C#
277
star
3

Encryption-Web-Chat

基于.NET Core + SignalR 的多人聊天室。
C#
72
star
4

NETCore-Snowflake-Framework

雪花框架:基于.NET Core + Mysql + Redis + RabbitMQ 设计的高性能多层架构,涵盖了仓储设计模式、全局日志、JWT授权认证、Swagger API管理、请求时间统计等功能,Docker配置文件、服务安装文件等。
C#
64
star
5

EOS-Bancor-Exchange-Dapp

Bancor区块链交易所应用,此应用主要是利用Bancor算法实现的去中心化交易所,实现了EOS区块链上无需挂单、无对手盘的去中心化交易系统,完全通过智能合约算法自动对代币进行涨跌,省去了传统挂单买卖交易代币的复杂度。
C++
5
star
6

VUE-Snowflake-Framework

雪花框架:使用VUE+Vite+Pinia+Iconify+Echart+I18n+Windicss+搭建的前端框架,便于敏捷开发使用。
Vue
2
star
7

ETH-Mutiple-Token-Staking

ETH2.0可乐质押系统,支持ETH及ERC20代币质押,并生成各个币种的锚定币。在提现时自动销毁锚定币,同时返还用户质押的原币种。
Solidity
2
star
8

MOVE-NFT-MARKET

一款基于MOVE语言开发的的NFT交易市场,这个语言目前还很初级,内置可用的API很少,很多功能都只能用变通的办法实现。
2
star
9

ReactNative-Network-App

对于一个经常Google的技术人来说,回到国内才能体会被限制自由的酸楚。尽管自己搭了ss,但App Store里的软件被全被下了架。索性就用React-Native加IOS原生的NEKit组件来写一个自己用的App,虽然不能上架App Store,但可以安装到自己的手机和平板上。
2
star
10

EOS-Buy-Name-Dapp

此应用主要为了实现Paypel、微信来直接购买区块链资源,由于EOS区块链账号需要质押代币、购买内存、CPU、网络等资源,对于普通用户来说操作过于复杂,此应用可以一键支付后自动完成所有操作,方便普通用户快速上手区块链。
C++
2
star
11

EOS-Coin-Race-Dapp

币价赛跑区块链游戏,此游戏是一款区块链赛跑游戏,通过采集第三方币价在一定时间内的涨幅,转换成赛道来进行赛跑比赛,用户可以竞猜哪个币跑的最快,是一款纯消遣娱乐的游戏。
C++
2
star
12

GO-Snowflake-Framework

雪花框架:基于GO语言的服务端框架,集成了Fiber、Cobra、Log、Redis、Mysql等基础组件,示例包含JTW授权及签名方法。定时打印内存、协程状态,适用于高性能CLI、Web、Network服务开发。
Go
1
star
13

ETH2.0-Safe-Staking-Service

ETH2.0可乐矿池质押服务
Solidity
1
star
14

uniswap-v2-v3-arbitrage

Go
1
star
15

EOS-Dragon-Bidding-Dapp

接龙竞拍区块链游戏,此游戏主要是以成语接龙为核心思想研发而成,用户可以通过点数挖矿的方式获得代币,同时根据其挖矿的点数进行接龙,如果用户的点数与之前其他用户的点数相同,则获得挖矿的代币奖励。
C++
1
star
16

IOS-Android-Mining-App

苹果安卓双端算力挖矿,这是一款算力挖矿的移动端应用,主要功能是按照用户的质押金额、质押占比、推荐人数、活跃用户等多个维度生成不同大小的算力,每天按时间+算力实现不同收益的挖矿。
1
star