首页 > 编程知识 正文

手机验证码接收软件(接别人手机验证码软件)

时间:2023-05-06 10:35:30 阅读:104025 作者:2344

验证码

00-1010验证码,可以说是现在互联网上刚需的。只要有登录,就会有验证码。当然还有各种验证码,静态的,动态的。静态的分为图片、汉字、算术等,动态的分为gif、滑块、点击汉字等。下面小编介绍两个验证码,必要的时候可以收集,这样可以节省你的开发时间。

导语

快乐验证码遵循Apache 2.0开源许可协议,可以自由使用软件。它提供了图片和动画两种显示形式,可以根据自己的需要来实现。

Maven访问,只是引入maven依赖。属国

groupIdcom.ramostear/groupId

artifactIdHappy-验证码/artifactId

版本1 . 0 . 1/版本

/dependency生成验证码以下是最基本的用法,其中request和response是必需参数,其他参数是可选的。这种情况下,生成的验证码是图片,内容是09-azA-Z字符的随机组合,长度为5,图片宽度为160,高度为50,字体为微软雅赫。

@控制器

公共类HappyCaptchaController {

@GetMapping('/captcha ')

public void happyCaptcha(HttpServletrequest请求,HttpServletResponse响应){ 0

HappyCaptcha.require(请求、响应)。构建()。finish();

}

}验证码的第三个参数表示是否忽略案例,true表示忽略,false表示验证案例。

@控制器

公共类CaptchaController{

@PostMapping('/verify ')

公共字符串验证(字符串代码,HttpServletRequest请求){ 0

//验证码验证

布尔标志=HappyCaptcha.verification(请求,代码,true);

if(标志){ 0

//其他操作.

}

}

}清理验证码。使用验证码后,可以根据需要手动清理。清理也很简单,只需要一行代码。

@控制器

公共类HappyCaptchaController {

@ GetMapping(“/remove/captcha”)

public void removeCaptcha(HttpServletrequest请求){ 0

HappyCaptcha.remove(请求);

}

}高级功能HappyCaptcha有几个高级功能:样式、类型、长度、宽度、高度、字体。

Style:有两个值,CaptchaStyle。ANIM和队长风格。IMG,前者生成动态验证码,后者生成静态图片。只需添加样式(验证码样式。ANIM)到生成验证码的代码。类型有以下可选值,只需添加类型(验证码类型。WORD)

引自ramostear

3.长度、宽度、高度的介绍都差不多,对应的长度(XXX)、宽度(XXXX)、高度(XX)等。被添加到代码中,所以我不会详细介绍它们。

4.字体的引入需要字体(font。getinstance()。zhfont())。有四种类型。

注意:这些功能可以用链式调用。

显示效果

引自ramostear

ps://p6.toutiaoimg.com/origin/pgc-image/d07f15f5c67e46ea90b6987bfdea7b04?from=pc">

引自ramostear

EasyCaptcha

图形验证码,支持中文,算数,gif等

maven引入 <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency>生成验证码@Controller public class CaptchaController { @RequestMapping("/captcha") public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception { CaptchaUtil.out(request, response); } }校验验证码@Controller public class LoginController { @PostMapping("/login") public JsonResult login(String username,String password,String verCode){ if (!CaptchaUtil.ver(verCode, request)) { //校验 CaptchaUtil.clear(request); // 清除session中的验证码 // other.... } } }自定义验证码样式// 设置位数 CaptchaUtil.out(5, request, response); // 设置宽、高、位数 CaptchaUtil.out(130, 48, 5, request, response); 验证码类型// png类型 SpecCaptcha captcha = new SpecCaptcha(130, 48); // gif类型 GifCaptcha captcha = new GifCaptcha(130, 48); // 中文类型 ChineseCaptcha captcha = new ChineseCaptcha(130, 48); // 中文gif类型 ChineseGifCaptcha captcha = new ChineseGifCaptcha(130, 48); // 算术类型 ArithmeticCaptcha captcha = new ArithmeticCaptcha(130, 48);前后端分离中使用样例@Controller public class CaptchaController { @Autowired private RedisUtil redisUtil; @ResponseBody @RequestMapping("/captcha") public JsonResult captcha(HttpServletRequest request, HttpServletResponse response) throws Exception { SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5); String verCode = specCaptcha.text().toLowerCase(); String key = UUID.randomUUID().toString(); // 存入redis并设置过期时间为30分钟 redisUtil.setEx(key, verCode, 30, TimeUnit.MINUTES); // 将key和base64返回给前端 return JsonResult.ok().put("key", key).put("image", specCaptcha.toBase64()); } @ResponseBody @PostMapping("/login") public JsonResult login(String username,String password,String verCode,String verKey){ // 获取redis中的验证码 String redisCode = redisUtil.get(verKey); // 判断验证码 if (verCode==null || !redisCode.equals(verCode.trim().toLowerCase())) { return JsonResult.error("验证码不正确"); } } }效果展示

引自synchronized

引自synchronized

对比

这两款验证码相比各自有优缺点,第一款验证码比较丰富,但是前后端分离项目中,不好使用,没有类似redis这种存储;第二款验证码适合前后端分离,相对前者丰富性差点。不过一般的基本上能用。

总结

由于篇幅有限,今天就简单的介绍到这里了。喜欢的小伙伴点个关注+评论+赞哦。私信【验证码】 小编,获得源码地址。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。