gpt4 book ai didi

开源.NetCore通用工具库Xmtool使用连载-图形验证码篇

转载 作者:我是一只小鸟 更新时间:2023-09-08 07:02:05 29 4
gpt4 key购买 nike

【Github源码】


《上一篇》 介绍了Xmtool工具库中的Web操作类库,今天我们继续为大家介绍其中的图形验证码类库.

图形验证码是为了抵御恶意攻击出现的一种设计;例如用户登录、修改密码等场景。在本类库中,将图形验证码的逻辑进行了抽象封装,能够通过同一套方法使用不同类型的图形验证码;让增加图形验证码逻辑变得更方便友好,且切换不同类型的图形验证码更简易.

使用时,需要先获取图形验证码类库对象:

                        
                          ICaptcha captcha = Xmtool.Captcha(CaptchaKind.Character);	// 字符验证码
// 或者
ICaptcha captcha = Xmtool.Captcha(CaptchaKind.Sliding);	// 滑块验证码

                        
                      

ICaptcha接口提供了配置、生成和校验 3 个方法,通过这 3 个方法可以很方便的将图形验证码能力嵌入到自己的软件功能中.

Config方法 。

Generate方法 。

Validate方法 。

Type属性 。

1. Config方法

public ICaptcha Config(CaptchaOption option);
说明:配置图形验证码生成规则,根据图形验证码不同的类型,需传入不同的参数配置类。
参数:

option :生成参数配置;字符验证码使用 CharacterCaptchaOption 配置类,滑块验证码使用 SlidingCaptchaOption 配置类.

                        
                          ICaptcha captcha = Xmtool.Captcha(CaptchaKind.Character);

CharacterCaptchaOption option = new CharacterCaptchaOption();
option.BackColor = Color.Blue;
option.BorderColor = Color.DarkBlue;
captcha.Config(option);

// TODO

                        
                      

2. Generate方法

public CaptchaResult Generate(CaptchaData data = null);
说明:根据参数配置生成图形验证码图片及相关数据。
参数:

data :生成数据设定,默认不设置将随机生成;字符验证码使用 CharacterCaptchaData 类,滑块验证码使用 SlidingCaptchaData 类.

返回:

将返回生成的图片数据(Base64格式)和相关校验性数据.

                        
                          ICaptcha captcha = Xmtool.Captcha(CaptchaKind.Character);
CharacterCaptchaData data = new CharacterCaptchaData();
data.Code = "1234";
CaptchaResult result = captcha.Generate(data);
// TODO

                        
                      

3. Validate方法

public bool Validate(object source, object input);
说明:将用户输入信息和生成数据进行对比,判断图形验证码输入或操作是否正确。
                        
                          ICaptcha captcha = Xmtool.Captcha(CaptchaKind.Character);
CaptchaResult result = captcha.Generate();
bool ok = captcha.Validate(result.ValidationData, "用户输入数据");
if (ok)
{
    // TODO
}

                        
                      

4. Type属性

说明:返回当前实例的验证码类型,CaptchaKind.Character(字符验证码)或CaptchaKind.Sliding(滑块验证码)。

附加说明

1、CharacterCaptchaOption类

该类用于为字符图形验证码设置生成过程的一些配置信息。

1. Length属性

说明:设置字符验证码的个数,默认6个字符。

2. OnlyNumber属性

说明:生成的字符验证码是否只包含数字,默认为true;否则包含数字和英文字母。

3. Width属性

说明:设置字符验证码整体图片的宽度,默认300。

4. Height属性

说明:设置字符验证码整体图片的高度,默认120。

5. BackColor属性

说明:设置字符验证码整体图片的背景颜色,默认白色。

6. Bordercolor属性

说明:设置字符验证码整体图片的边框颜色,默认浅灰。

2、SlidingCaptchaOption类

该类用于为滑块验证码设置生成过程的一些配置信息。

1. BackgroundDir属性

说明:设置滑块验证码背景图片的存放目录。

2. ResultError属性

说明:设置滑块验证码校验时允许的位置偏差百分比,默认0.02。

3、CharacterCaptchaData类

该类用于设置生成字符验证码内容的指定。

1. Code属性

说明:字符验证码默认随机生成字符内容,通过该属性可以指定生成内容。

4、SlidingCaptchaData类

该类用于设置生成滑块验证码的规格信息。

1. GapX属性

说明:滑块凹槽生成的横向坐标位置,默认随机生成。

2. GapY属性

说明:滑块凹槽生成的纵向坐标位置,默认随机生成。

3. GapTemplate属性

说明:滑块凹槽的形状,支持0-4五种形状,默认随机选择。

5、CaptchaResult类

该类用于返回图形验证码生成的具体内容。

1. ValidationData属性

说明:用于图形验证码进行校验的数据。字符验证码是字符验证码生成的字符内容;滑块验证码是凹槽横向坐标和图片整体宽度的百分数。该数据即是使用Validate方法时的souce参数。

2. DisplayData属性

说明:图形验证码生成图片数据,以Base64图片格式返回,可以直接复制到浏览器地址栏查看。字符验证码直接返回图片数据内容;滑块验证码返回包括图片的宽度、高度、背景图片数据内容、滑块图片的宽度、高度、滑块图片的数据内容,中间使用“|”分隔。


【Github源码】

最后此篇关于开源.NetCore通用工具库Xmtool使用连载-图形验证码篇的文章就讲到这里了,如果你想了解更多关于开源.NetCore通用工具库Xmtool使用连载-图形验证码篇的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com