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

h5制作公司佛山旺道seo

h5制作公司,佛山旺道seo,webp图片压缩wordpress,有域名怎样建设网站说明:验证码,是登录流程中必不可少的一环,一般企业级的系统,使用都是专门制作验证码、审核校验的第三方SDK(如极验)。本文介绍,使用谷歌提供的Kaptcha技术,制作一个简单的验证码。 …

说明:验证码,是登录流程中必不可少的一环,一般企业级的系统,使用都是专门制作验证码、审核校验的第三方SDK(如极验)。本文介绍,使用谷歌提供的Kaptcha技术,制作一个简单的验证码。

本文参考(http://t.csdn.cn/55Ip2),基本是根据这篇文章自己手动实现了一遍。

后端代码

创建一个SpringBoot项目,依赖如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>kaptcha_essay</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--Springboot项目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/></parent><dependencies><!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--kaptcha依赖--><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency></dependencies></project>

创建一个Kaptcha配置类,用于设置验证码的尺寸、样式等,注意不要漏掉@Component注解如下:

import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;import java.util.Properties;@Component
public class KaptchConfig {@Beanpublic DefaultKaptcha getDefaultKaptcha() {// 创建验证码工具com.google.code.kaptcha.impl.DefaultKaptcha defaultKaptcha = new com.google.code.kaptcha.impl.DefaultKaptcha();// 验证码配置Properties properties = new Properties();// 图片边框properties.setProperty("kaptcha.border", "no");// 边框颜色properties.setProperty("kaptcha.border.color", "black");//边框厚度properties.setProperty("kaptcha.border.thickness", "1");// 图片宽properties.setProperty("kaptcha.image.width", "120");// 图片高properties.setProperty("kaptcha.image.height", "60");//图片实现类properties.setProperty("kaptcha.producer.impl", "com.google.code.kaptcha.impl.DefaultKaptcha");//文本实现类properties.setProperty("kaptcha.textproducer.impl", "com.google.code.kaptcha.text.impl.DefaultTextCreator");//文本集合,验证码值从此集合中获取properties.setProperty("kaptcha.textproducer.char.string", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");//验证码长度properties.setProperty("kaptcha.textproducer.char.length", "4");//字体properties.setProperty("kaptcha.textproducer.font.names", "宋体");//字体颜色properties.setProperty("kaptcha.textproducer.font.color", "black");//文字间隔properties.setProperty("kaptcha.textproducer.char.space", "4");//干扰实现类properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.DefaultNoise");//干扰颜色properties.setProperty("kaptcha.noise.color", "blue");//干扰图片样式properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.WaterRipple");//背景实现类properties.setProperty("kaptcha.background.impl", "com.google.code.kaptcha.impl.DefaultBackground");//背景颜色渐变,结束颜色properties.setProperty("kaptcha.background.clear.to", "white");//文字渲染器properties.setProperty("kaptcha.word.impl", "com.google.code.kaptcha.text.impl.DefaultWordRenderer");// 创建验证码配置实例Config config = new Config(properties);// 验证码工具defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

创建一个controller层类,用于生成验证码并返回

import com.google.code.kaptcha.impl.DefaultKaptcha;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.Map;@RestController
@CrossOrigin
@RequestMapping("/code")
public class KaptchController {@ResourceDefaultKaptcha defaultKaptcha;/*** 生成验证码*/@GetMappingpublic Map code() throws IOException {// 生成文字验证码String text = defaultKaptcha.createText();System.out.println("文字验证码为" + text);ByteArrayOutputStream out = new ByteArrayOutputStream();// 生成图片验证码BufferedImage image = defaultKaptcha.createImage(text);ImageIO.write(image, "jpg", out);// 对字节组Base64编码return Map.of("data", Base64.getEncoder().encodeToString(out.toByteArray()));}
}

@CrossOrigin注解,用于解决跨域问题,待会儿前端会发送异步请求,获取验证码;

前端代码

创建一个前端页面,使用axios向后端发送获取验证码的请求;

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>获取验证码</title><script src="js/axios-0.18.0.js"></script></head><body><input type="button" value="获取验证码" onclick="get()"><img id="pic" />
</body>
<script>function get() {// 异步交互ajaxaxios.get("http://localhost:8080/code") // 发请求给服务器.then(resp => {// 接收响应回来的数据console.log(resp.data);document.getElementById("pic").src = 'data:image/jpeg;base64,' + resp.data.data;})}
</script></html>

启动&测试

启动代码,打开前端页面,点击获取验证码,查看结果,如下:

在这里插入图片描述

控制台输出验证码,这个验证码在实际开发中可存入Redis中;

在这里插入图片描述

可以前端查看返回的内容;

在这里插入图片描述

这段地址加上data:image/jpeg;base64,就是验证码的图片地址;

在这里插入图片描述

http://www.dt0577.cn/news/32725.html

相关文章:

  • 做网站推广的销售电话开场白线上营销推广方式都有哪些
  • 哪里有帮助做数学题网站百度一下百度网页版主页
  • 可以自己做装修效果图的网站seo课堂
  • 网站备案和icp备案seo服务公司上海
  • wordpress主题模板怎么用长沙seo管理
  • java网站开发培训什么推广平台比较好
  • 平乡建设局网站海外黄冈网站推广
  • 长安高端装备网站设计公司优化网站seo公司
  • wordpress自动添加内链杭州网站推广与优化
  • 给博彩网站做推广犯法沈阳专业seo排名优化公司
  • 做网站公司 深圳信科长沙seo结算
  • 做内衣批发的网站我国的网络营销公司
  • 一加手机官网网站客服seo点击排名
  • 百度信誉任何在网站展示广州seo推广
  • 下载一个网站seo网站编辑优化招聘
  • 网站建设 网站独立网站和平台网站
  • 网站开发的操作可行性seo算法优化
  • 搭建自己微信网站属于b2b的网站有哪些
  • 自助做网站哪家好如何弄一个自己的网站
  • 网站做视频好不好网销怎么做才能做好
  • 本地电脑如何做网站服务器关键词seo排名怎么样
  • 苏州网站建设有限公司seo排名点击 seo查询
  • 多语言外贸网站制作seo快排公司哪家好
  • 阿里巴巴网站威海哪里做?深圳网站建设公司官网
  • 郑州核酸vip服务优化搜索曝光次数的方法
  • 移动网站 html5浙江网站推广
  • 人大网站建设方案 文库电脑优化软件
  • 150网站建设已备案域名购买平台
  • 微信小程序免300元认证费西安seo霸屏
  • 手机网站建设免费空间杭州制作公司网站