返回顶部
首页 > 资讯 > 精选 >Java如何实现滑动验证码
  • 528
分享到

Java如何实现滑动验证码

2023-06-29 07:06:37 528人浏览 薄情痞子
摘要

小编给大家分享一下Java如何实现滑动验证码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!功能:java实现滑动验证码项目是采用SpringBoot,Maven开发工具:采用idea1.效果演示2.后端代码控制层@Cont

小编给大家分享一下Java如何实现滑动验证码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    功能:java实现滑动验证码

    项目是采用SpringBootMaven

    开发工具:采用idea

    1.效果演示

    Java如何实现滑动验证码

    Java如何实现滑动验证码

    Java如何实现滑动验证码

    2.后端代码

    控制层

    @Controllerpublic class SliderCodeController {     @Autowired    ResourceLoader resourceLoader;     @Autowired    private FileUtil fileUtil;     // 设置横轴位置缓存    public static Cache< String, Integer > cacheg = CacheBuilder.newBuilder().expireAfterWrite(60, TimeUnit.SECONDS)            .maximumSize(666666).build();     @GetMapping    @RequestMapping("index")    public String test(httpservletRequest request, Model model) throws ioException {        return "index";    }      @GetMapping    @RequestMapping("getImg")    public @ResponseBody    Map< String, Object > getPic(HttpServletRequest request) throws IOException {        try {            File targetFile = fileUtil.getFile("target");            File tempImgFile = fileUtil.getFile("temp");            Map < String, Object > resultMap = VerifyImageUtil.pictureTemplatesCut(tempImgFile, targetFile);            // 生成流水号,这里就使用时间戳代替            String lno = Calendar.getInstance().getTimeInMillis() + "";            cacheg.put(lno, Integer.valueOf(resultMap.get("xWidth") + ""));            resultMap.put("capcode", lno);            // 移除横坐标送前端            resultMap.remove("xWidth");            return resultMap;        }        catch (Exception e) {            e.printStackTrace();            return null;        }     }      @GetMapping    @RequestMapping("checkImGCode")    public @ResponseBody Map < String, Object > checkcapcode(@RequestParam("xpos") int xpos,                                                             @RequestParam("capcode") String capcode, HttpServletRequest request) throws IOException {        Map < String, Object > result = new HashMap< String, Object >();        Integer x = cacheg.getIfPresent(capcode);        if (x == null) {            // 超时            result.put("code", 3);        }        else if (xpos - x > 5 || xpos - x < -5) {            // 验证失败            result.put("code", 2);        }        else {            // 验证成功            result.put("code", 1);        }        return result;    }}

    工具

    @Componentpublic class FileUtil {     @Value("${file.path}")    private String filePath;     @Value("${file.target.path}")    private String targetFilePath;     @Value("${file.target.num}")    private Integer targetfileNum;     @Value("${file.temp.path}")    private String tempFilePath;     @Value("${file.temp.num}")    private Integer tempfileNum;     public File getFile(String type){        int num = 0;        String imgType = ".jpg";        String oldFilePath = "";        if(type.equals("target")){            num = new Random().nextInt(targetfileNum)  + 1;            oldFilePath = targetFilePath;        } else  if(type.equals("temp")){            num = new Random().nextInt(tempfileNum)  + 1;            imgType = "-w.png";            oldFilePath = tempFilePath;        }        String path = filePath;        String fileImg =   num + imgType;        String filePath = path + fileImg;        File pathFile = new File(path);        if(!pathFile.exists()){            pathFile.mkdirs();        }        File file = new File(filePath);        if(!file.exists()){            try {                file.createNewFile();                ClassPathResource classPathResource = new ClassPathResource(oldFilePath + fileImg);                InputStream inputStream = classPathResource.getInputStream();                if(inputStream.available() != 0){                    FileUtils.copyInputStreamToFile(inputStream, file);                }                inputStream.close();            } catch (IOException e) {                e.printStackTrace();            }        }        return file;    } }

    3.前端页面

    <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>滑动验证码</title><link rel="stylesheet" href="/CSS/slide.css" rel="external nofollow" ><script src="/js/Jquery-1.11.1.min.js"></script><script src="/js/jquery.lgyslide.js"></script></head><body><div id="imgscode"></div><script>$(function() {setTimeout(function() {createcode();}, 1000)}());//显示验证码function createcode() {$.ajax({type : 'POST',url : '/getImg',dataType : 'JSON',success : function(data) {if (data != null) {$("#imgscode").imgcode({frontimg : 'data:image/png;base64,'+ data.slidingImage,backimg : 'data:image/png;base64,'+ data.backImage,yHeight : data.yHeight,refreshcallback : function() {//刷新验证码createcode();},callback : function(msg) {console.log(msg);var $this = this;$.ajax({type : 'POST',url : '/checkImgCode',data : {xpos : msg.xpos,capcode : data.capcode},dataType : 'json',success : function(data) {console.log(data)if (data.code == 1) {$this.getsuccess();} else {if (data.code == 4) {createcode();} else if (data.code == 3) {$this.getfail("验证码过期,请刷新");} else {$this.getfail("验证不通过");}} }})}});}}})}</script></body></html>

    看完了这篇文章,相信你对“Java如何实现滑动验证码”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

    --结束END--

    本文标题: Java如何实现滑动验证码

    本文链接: https://lsjlt.com/news/323651.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Java如何实现滑动验证码
      小编给大家分享一下Java如何实现滑动验证码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!功能:java实现滑动验证码项目是采用springboot,maven开发工具:采用idea1.效果演示2.后端代码控制层@Cont...
      99+
      2023-06-29
    • .NET如何实现滑动验证码
      本篇内容介绍了“.NET如何实现滑动验证码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CaptchaData.csCaptchaData....
      99+
      2023-07-04
    • canvas如何实现滑动验证
      小编给大家分享一下canvas如何实现滑动验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!突然想到的方法,来试试吧页面布局<canvas id=...
      99+
      2023-06-09
    • Java实现滑动验证码的示例代码
      目录1.效果演示2.后端代码控制层工具类3.前端页面功能:java实现滑动验证码 项目是采用springboot,maven 开发工具:采用idea 1.效果演示 2.后端代码...
      99+
      2024-04-02
    • Java实现滑动验证码(前端部分)
      目录实现思路实现代码实现结果实现思路 1、请求后端获得背景图、滑块、x、y、误差范围bound 2、将滑块设置到对应的位置:top = y 3、添加鼠标滑动事件 实现代码 后端请求(...
      99+
      2022-11-13
      Java滑动验证码 Java 验证码
    • js插件如何实现图片滑动验证码
      这篇文章将为大家详细讲解有关js插件如何实现图片滑动验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jquery.lgymove.js  (function...
      99+
      2024-04-02
    • Java实现滑块拼图验证码
      本文实例为大家分享了Java实现滑块拼图验证码的具体代码,供大家参考,具体内容如下 1、后端随机生成抠图和带有抠图阴影的背景图片,后台保存随机抠图位置坐标 2、前端实现滑动交互,将抠...
      99+
      2024-04-02
    • Vue如何实现滑动验证功能
      这篇文章主要介绍了Vue如何实现滑动验证功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。程序分析鼠标的...
      99+
      2023-06-29
    • 如何使用php+js实现极验,拖动滑块验证码验证表单
      这篇文章给大家分享的是有关如何使用php+js实现极验,拖动滑块验证码验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码实现   html文件   <!...
      99+
      2024-04-02
    • C#滑动验证码拼图验证功能实现(SlideCaptcha)
      目录使用背景:实现分析:后端代码:准备:使用:前端代码:结语:使用背景: 关于滑动验证码的使用场所还是非常多的,如:调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口都需要加...
      99+
      2024-04-02
    • django滑动验证码
      最近用django写了一个后台系统,使用的是验证码方式。但是开发人员抱怨,输入验证太麻烦,还有可能出错,太影响效率了。是否可以用滑动验证码,一拖动就可以了! 网上大部分文章,用的是极验GeeTest,需要你自己注册账号,才能使用。...
      99+
      2023-01-31
      验证码 django
    • Flutter实现滑动块验证码功能
      Flutter实现滑动块验证码功能,供大家参考,具体内容如下 本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。 ...
      99+
      2024-04-02
    • vue实现滑动验证条
      本文实例为大家分享了vue实现滑动验证条的具体代码,供大家参考,具体内容如下 效果 代码 VerifySlider.vue <template>   <div ...
      99+
      2024-04-02
    • Java实现滑动验证码生成(后端工具类)
      目录一、滑动验证码生成思路二、主要方法三、生成代码四、测试结果一、滑动验证码生成思路 1、随机选择一张图片 2、生成滑块起点位置(x, y) 3、生成滑块轮廓 4、抠出滑块 5、将滑...
      99+
      2022-11-13
      Java滑动验证码 Java 验证码
    • JavaScript实现滑块验证码
      本文实例为大家分享了JavaScript实现滑块验证码的具体代码,供大家参考,具体内容如下 效果:鼠标在底部滑块上按下按住不松拖动可以移动滑块,上面大图里面带有小图背景的滑块也会跟随...
      99+
      2024-04-02
    • Python如何实现正方系统滑动验证码识别
      这篇文章主要为大家展示了“Python如何实现正方系统滑动验证码识别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python如何实现正方系统滑动验证码识别”这篇文章吧。步骤一:点击数据分析点击...
      99+
      2023-06-22
    • Java selenium处理极验滑动验证码示例
      要爬取一个网站遇到了极验的验证码,这周都在想着怎么破解这个,网上搜了好多知乎上看到有人问了这问题,我按照这思路去大概实现了一下。1.使用htmlunit(这种方式我没成功,模拟鼠标拖拽后轨迹没生成,可以跳过)我用的是java,我首先先想到了...
      99+
      2023-05-31
      java selenium ava
    • Vue实现滑动验证功能
      用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。 程序分析 1、鼠标的点击2、滑块的拖动3、未验证之前滑动条上显示的文字4、滑块箭头指向Vue函数5、判断是否拖...
      99+
      2024-04-02
    • vue实现移动滑块验证
      本文实例为大家分享了vue实现移动滑块验证的具体代码,供大家参考,具体内容如下 记录一下今天的学习内容 <div class="solidBox" :class="{'so...
      99+
      2024-04-02
    • vue实现图片滑动验证
      本文实例为大家分享了vue实现图片滑动验证的具体代码,供大家参考,具体内容如下 效果图: 1、引用自定义组件 import img0 from '../assets/img.jpg...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作