三行代码生成验证码并转换成base64

使用 Hutool 工具类

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Console;
import sun.misc.BASE64Encoder;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/04/26/22:40* @Description:*/
public class CaptchaTest {public static void main(String[] args) throws IOException {//定义图形验证码的长和宽LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);//图形验证码写出,可以写出到文件,也可以写出到流 写出至文件
//        lineCaptcha.write("d:/line.png");
//
//        String code = lineCaptcha.getCode();
//        System.out.println("验证码--- " + code);
//        //验证图形验证码的有效性,返回boolean值
//        boolean verify = lineCaptcha.verify("1234");
//        //重新生成验证码
//        lineCaptcha.createCode();// 手动转base64
//        File file = FileUtil.touch("d:/line.png");
//        FileInputStream inputFile = new FileInputStream(file);
//        byte[] buffer = new byte[(int)file.length()];
//        inputFile.read(buffer);
//        inputFile.close();
//        // base64
//        String encode = new BASE64Encoder().encode(buffer);
//        System.out.println(encode);// 使用 hutool 工具类String code  = lineCaptcha.getCode();String imageBase64 = lineCaptcha.getImageBase64();System.out.println(imageBase64);}
}

使用场景

当生成验证码后将验证码,以及随机生成的key,保存至redis(验证码作为value),将验证码的base64字符串返回给前端,显示在页面中,用户可以根据识别验证码输入。
<img src="https://img-blog.csdnimg.cn/2022010703440731903.png" />

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 创建容器报: Error response from daemon: C: drive is not shared.

报错 C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: C: drive is not shared. Please share it in Docker for Windows Settings. See C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help.这时候我们需要绑定盘符…

CentOS 7 搭建swagger Api文档管理系统

1&#xff0c;系统环境 a&#xff0c;操作系统 CentOS Linux release 7.6.1810 (Core) 64位 b&#xff0c;安装Node.js的npm工具环境&#xff1a; # Node 官网已经把 linux 下载版本更改为已编译好的版本了&#xff0c;我们可以直接下载解压后使用&#xff1a; wget http…

宽带和流量是分开的吗_为什么现在的手机套餐与宽带越来越贵,只是因为建设5G吗?...

不知道你有没有这样一种感觉&#xff0c;手机的资费越来越高&#xff0c;并且宽带的资费也是开始上涨&#xff0c;随着5G时代的来到&#xff0c;我们现在的现在的的流量使用量也是越来越大&#xff0c;还记得2018的话费套餐最便宜的最低的只要8块钱&#xff0c;而29元能够办理包…

CentOS7 源码编译安装Redis shell脚本

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2&#xff0c;执行以下命令完成安装 yum install -y gcc # 安装依赖包wget http://download.redis.io/releases/redis-5.0.5.tar.gz # 下载Redis安装包 tar -xzvf redis-5.0.5.tar.gzcd red…

SpringBoot 集成WebSocket

什么是WebSocket WebSocket 是一种网络通信协议&#xff0c;很多高级功能都需要它。 我们已经有了 HTTP 协议&#xff0c;为什么还需要另一个协议&#xff1f;它能带来什么好处&#xff1f; 因为 HTTP 协议有一个缺陷&#xff1a;通信只能由客户端发起。 如果我们想要服务器给…

大学电路题目怎么搜_长沙理工大学2020真题浅析

长沙理工大学2020年821电路&#xff0c;整体感觉难度还行&#xff0c;和邱版《电路》课后题的平均水平相当。整张卷子由9道填空题和七道大题目构成&#xff0c;填空一题5分&#xff0c;大题一题15分。先说说填空&#xff0c;1是一个等效电阻&#xff0c;当然上来先观察下平衡电…

CentOS 7 搭建RAP2r Api文档管理系统

1&#xff0c;系统环境 a&#xff0c;操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2&#xff0c;安装npm环境&#xff1a; # Node 官网已经把 linux 下载版本更改为已编译好的版本了&#xff0c;我们可以直接下载解压后使用&#xff1a; wget https://nodejs.org…

转:VMware、微软等四种主要的网络IO虚拟化模型

本文主要为大家简要介绍VMware、Redhat、Citrix、Microsoft主要虚拟化厂商使用的4种主要的虚拟化IO模型(emulation、para-virtualization、pass-through、SR-IOV)。 本文主要为大家穿针引线&#xff0c;信息量比较大&#xff0c;组织排版有限&#xff0c;看官们将就点看着。 网…

CentOS7安装go开发环境

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 执行以下命令&#xff1a; wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz tar -xzvf go1.12.5.linux-amd64.tar.gz -C /usr/local/ mkdir -p /home/gopath cat >> /etc/p…

非递归遍历二叉树

2019独角兽企业重金招聘Python工程师标准>>> http://hi.baidu.com/lcplj123/item/7875233769fd5522b2c0c582 转载于:https://my.oschina.net/u/939893/blog/126138

Vue.js使用矢量图

安装依赖 npm i svg-sprite-loader --save目录结构 创建 svg-icon 组件 <template><svg :class"svgClass" aria-hidden"true"><use :xlink:href"iconName"/></svg> </template><script> export default {…

aix oracle监听配置_Oracel:ORA-12518:监听程序无法分发客户机连接

一、【问题描述】最近&#xff0c;在系统高峰期的时候&#xff0c;会提示如上的错误&#xff0c;致使无法连接到服务器上的数据库。二、【分析过程】1、首先判断是否由于监听配置不正确的原因导致?系统在正常情况下都可以正常的使用&#xff0c;检查监听配置&#xff0c;完全正…

PowerShell巡检主机获取CPU占用、内存使用、硬盘情况的脚本

Windows底下用PowerShell写的获取CPU核数、占用率&#xff1b;内存可用内存大小&#xff08;GB&#xff09;、使用率&#xff1b;硬盘总空余大小&#xff08;GB&#xff09;&#xff0c;使用率 # 获取硬盘空余空间 function get_disk_free(){ $disk Get-WmiObject -Class win…

4 命名规则_赛普拉斯(Cypress)存储器芯片命名规则

1&#xff0c;前言 赛普拉斯(Cypress)公司是一家知名的电子芯片制造商。赛普拉斯在纽约股票交易所上市&#xff0c;在数据通信、消费类电子等广泛领域均提供芯片解决方案。 2020年4月16日赛普拉斯(Cypress)和英飞凌(infineon)同时对外发文宣布&#xff1a;infineon英飞凌已经完…

数据数据库学通MongoDB——第一天 基础入门

在本文中,我们主要介绍数据数据库的内容,自我感觉有个不错的建议和大家分享下 关于mongodb的利益&#xff0c;长处之类的这里就不说了&#xff0c;一唯要讲的一点就是mongodb中有三元素&#xff1a;数据库&#xff0c;合集&#xff0c;文档&#xff0c;其中“合集” 就是对应关…

win10雷电3接口驱动_技嘉推出B550 主板首发雷电3接口:40Gbps速率、Intel主控

下周AMD针对主流市场的B550芯片组就要上市了&#xff0c;千元级主板上也有PCIe 4.0了。技嘉今天又宣布了一款新型号主板——B550 Vison D&#xff0c;它竟然支持Intel独家的Thunderbolt 3&#xff08;俗称雷电3&#xff09;接口&#xff0c;这还是B550中首款&#xff0c;40Gbps…

eclipse--eclipse(JavaEE版本)部署Tomcat工程(转)

介绍如何在eclipse&#xff08;JavaEE版本&#xff09;中部署Tomcat工程&#xff0c; 转自“http://www.cnblogs.com/chenjunbiao/archive/2011/12/09/2281702.html” “http://www.iteye.com/topic/825394” Eclipse下Tomcat常用设置 1&#xff0c;Eclipse建立Tomcat服务 1.1 …

python工程师需要考什么证_考垃圾处理清运工程师证哪里颁发的今年的考试时间即将告知...

考垃圾处理清运工程师证哪里颁发的今年的考试时间即将告知二、中级会计师(会计师)资格考试。三、高级会计师资格考试。四、中级会计师资格考试。五、注册税务师职称。六、注册公司登记。七、注册会计师、法人和其他组织的税务师资格考试。八、注册税务师职称。而在报名的时候不…

mysql集群搭建(使用docker 一主一从)

mysql集群搭建 my.cnf 配置文件配置 在 /etc/mysql/my.cnf 中 &#xff08;拿一个举例&#xff09; &#xff08;docker中需要先进入开启的容器&#xff0c;docker exec -it 容器名称 /bin/bash&#xff09; [mysqld] #启用二进制日志 log-binmysql-bin #服务器唯一ID&…

华为主题包hwt下载_华为主题 | 黑白人物

黑白人物1前言每周更新一次&#xff0c;没办法量产很抱歉但每一个主题都很精致这次的主题新增了QQ美化&#xff0c;锤子便签还有白肚皮美化不会太花里胡哨&#xff0c;放心不要喷我&#xff0c;所用壁纸皆是在堆糖里寻找喜欢的宝宝们&#xff0c;可以帮忙点一下再看或者关注不迷…