当前位置: 首页 > news >正文

海淀区住房和城乡建设委员会网站广州百度seo代理

海淀区住房和城乡建设委员会网站,广州百度seo代理,wordpress网站流量统计插件,武汉天元千川渔具有限公司在日常生活中,我们登录网站或者其他平台时,在填写完账号密码之后,还会让我们填写4或6位的数字或者英文字母等,填写正确才能请求登录。这个其实是防止某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,如下…

在日常生活中,我们登录网站或者其他平台时,在填写完账号密码之后,还会让我们填写4或6位的数字或者英文字母等,填写正确才能请求登录。这个其实是防止某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,如下图所示:

在这里插入图片描述

EasyCaptcha简介

现在,我们知道登录的时候需要填写验证码的原因,但图形验证码从何得来,是怎么生成的呢,这就需要我们去探索了。当然现在开源代码比较多,我这里推荐的就是一个开源的图形验证码,样式挺好看、类型也很多。

EasyCaptcha源码地址:https://gitee.com/ele-admin/EasyCaptcha

Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。

在这里插入图片描述

引入EasyCaptcha依赖

在IDEA中新建一个SpringBoot项目,版本为2.0以上的即可,在pom.xml中添加easycaptcha依赖,代码如下:

<!-- 图形验证码 -->
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>18.0</version>
</dependency><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version>
</dependency>

在项目中新建一个VerificationCode类,用来设置验证码图片的属性,包括宽度、高度、位数等操作。,代码如下:

    /*** 生成验证码图片的宽度*/private int width = 100;/*** 生成验证码图片的高度*/private int height = 30;/*** 生成验证码的位数*/private int digit = 4;/*** 生成的验证码code*/private String captchaCode;

接着在该类中新建一个生成验证码图形的方法。

    /*** 生成验证码** @return*/
public SpecCaptcha createVerificationCode() throws IOException, FontFormatException {// 三个参数分别为宽、高、位数SpecCaptcha specCaptcha = new SpecCaptcha(width, height, digit);// 设置字体specCaptcha.setFont(Captcha.FONT_9);// 设置类型,纯数字、纯字母、字母数字混合specCaptcha.setCharType(Captcha.TYPE_ONLY_NUMBER);// 验证码this.captchaCode = specCaptcha.text().toLowerCase();return specCaptcha;
}

我这里选择的是纯数字的类型,字体为FONT_9,在项目中可根据自己的需要进行修改。

接下来,写一个生成验证码的接口,将我们后端生成的数字以图片的格式返给前端展示。新建一个controller包,然后创建一个LoginController类。在该类中创建一个生成验证码的方法,并把图片以base64的格式输出,代码如下:

    @GetMapping("/captcha")public void getVerifyCode(HttpServletResponse response) throws IOException, FontFormatException {try {// 设置请求头为输出图片类型VerificationCode code = new VerificationCode();SpecCaptcha specCaptcha = code.createVerificationCode();// 创建字节数组输出流ByteArrayOutputStream baos = new ByteArrayOutputStream();// 将验证码图片输出到字节数组输出流中specCaptcha.out(baos);// 将字节数组转换为 Base64 编码byte[] imageBytes = baos.toByteArray();InputStream inStream = new ByteArrayInputStream(imageBytes);OutputStream outputStream = null;outputStream = new BufferedOutputStream(response.getOutputStream());//创建存放文件内容的数组byte[] buff = new byte[1024];//所读取的内容使用n来接收int n;//当没有读取完时,继续读取,循环while ((n = inStream.read(buff)) != -1) {//将字节数组的数据全部写入到输出流中outputStream.write(buff, 0, n);}//强制将缓存区的数据进行输出outputStream.flush();//关流outputStream.close();inStream.close();} catch (IOException e) {e.printStackTrace();}}

接下来,启动项目,然后在浏览器中,访问:http://localhost:8080/captcha地址,则就可以获取到图形验证码的图片。

在这里插入图片描述

http://www.hkea.cn/news/171599/

相关文章:

  • 刷会员网站怎么做外贸如何推广
  • 专做女装的网站网站备案是什么意思
  • 没有网站可以做seo排名吗小学生简短小新闻摘抄
  • 做程序网站需要什么代码宁波seo搜索排名优化
  • 网站建设开发语言新冠病毒最新消息
  • 怎么做1688网站网页制作工具有哪些
  • 一个网站的主题和设计风格最好用的免费建站平台
  • 网站开发主页手机优化游戏性能的软件
  • 怎么做属于自己的域名网站网络策划方案
  • destoon做的网站百度商务合作联系
  • 金山区网站制作网络营销策划书1500字
  • 厦门网站建设制作工具熊猫关键词挖掘工具
  • 徐州网站建设 网站推广百度首页快速排名系统
  • 在线转格式网站怎么做拼多多seo 优化软件
  • 成都理工疫情最新消息贵港seo
  • 网站如何防止攻击怎么自己做一个小程序
  • 企业网站建设英文百度收录
  • wordpress查版本sem和seo的区别
  • 网站设计说明书怎么写网站建设平台官网
  • 有建网站的软件阿里云域名注册万网
  • 站长工具排名分析怎么创建公司网站
  • 网站建设标书四川seo哪里有
  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台