springboot+captcha生成驗(yàn)證碼
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
? 作者?|??北海派bhp
來(lái)源 |? urlify.cn/ENbU3m
66套java從入門(mén)到精通實(shí)戰(zhàn)課程分享
前言:驗(yàn)證碼登錄是很多項(xiàng)目中會(huì)涉及到的,為了數(shù)據(jù)安全和緩存驗(yàn)證碼數(shù)據(jù)考慮,一般會(huì)要求后端來(lái)生成驗(yàn)證碼,并存儲(chǔ)在redis中,設(shè)置有效期,點(diǎn)擊可刷新。本文,講述springboot+captcha生成驗(yàn)證碼的全過(guò)程,并寫(xiě)一個(gè)簡(jiǎn)單的demo

創(chuàng)建springboot項(xiàng)目,點(diǎn)擊Next?

填寫(xiě)必要信息,點(diǎn)擊Next

選擇必要依賴,點(diǎn)擊Next

確認(rèn)項(xiàng)目信息,點(diǎn)擊Finish

生成初始項(xiàng)目如下?
添加工具依賴,這里我們使用hutool,版本選最新的即可,文章末尾會(huì)介紹
?
新建控制器CaptchaCtl

增加一個(gè)生成驗(yàn)證碼的接口

調(diào)用CaptchaUtil里邊的具體方法

三種方法主要區(qū)別
createLineCaptcha:生成線段干擾驗(yàn)證碼

createCircleCaptcha:生成圓圈干擾驗(yàn)證碼

?
createShearCaptcha:生成扭曲干擾驗(yàn)證碼

選擇一種喜歡的,完善生成方法,其中code就是圖片對(duì)應(yīng)的真實(shí)文字,用來(lái)和用戶輸入值進(jìn)行比較
?
?運(yùn)行項(xiàng)目,請(qǐng)求接口,前端獲取到了圖片流,后端打印出了驗(yàn)證碼的真實(shí)值:tdxua
?拷貝前端的圖片流,去專業(yè)網(wǎng)站驗(yàn)證圖片生成情況?
?拷貝前端的圖片流,去專業(yè)網(wǎng)站驗(yàn)證圖片生成情況

?圖、文一致,至此springboot+captcha生成驗(yàn)證碼的功能就完成了。
?貼上完整代碼
pom.xml
"1.0"?encoding="UTF-8"?>
"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?https://maven.apache.org/xsd/maven-4.0.0.xsd">
????4.0.0
????
????????org.springframework.boot
????????spring-boot-starter-parent
????????2.3.4.RELEASE
???????? ?
????
????top.baohaipeng
????captcha-boot
????0.0.1-SNAPSHOT
????captcha-boot
????springboot生成驗(yàn)證碼
????
????????1.8
????
????
????????
????????????cn.hutool
????????????hutool-all
????????????5.4.3
????????
????????
????????????org.springframework.boot
????????????spring-boot-starter-web
????????
????????
????????????org.springframework.boot
????????????spring-boot-starter-test
????????????test
????????????
????????????????
????????????????????org.junit.vintage
????????????????????junit-vintage-engine
????????????????
????????????
????????
????
????
????????
????????????
????????????????org.springframework.boot
????????????????spring-boot-maven-plugin
????????????
????????
????
CaptchaCtl.java
package?top.baohaipeng.captchaboot.controller;
import?cn.hutool.captcha.CaptchaUtil;
import?cn.hutool.captcha.ShearCaptcha;
import?org.springframework.web.bind.annotation.GetMapping;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RestController;
/**
?*?@ClassName?CaptchaCtl
?*?@Description?TODO
?*?@Author 頭條號(hào):北海派bhp
?*?@Date?2020/9/25?21:42
?*?@Version?1.0
?**/
@RestController
@RequestMapping
public?class?CaptchaCtl?{
????@GetMapping("captcha")
????public?String?getCaptcha(){
????????ShearCaptcha?captcha?=?CaptchaUtil.createShearCaptcha(111,?36);
????????//?驗(yàn)證碼對(duì)應(yīng)的字符串
????????String?code?=?captcha.getCode();
????????System.out.println("真實(shí)驗(yàn)證碼是:"+code);
????????//?返回圖片流
????????return?captcha.getImageBase64();
????}
}
?
相關(guān)資料
?
?
?
?
Hutool是一個(gè)小而全的Java工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語(yǔ)言般的優(yōu)雅,讓Java語(yǔ)言也可以“甜甜的”。
Hutool中的工具方法來(lái)自于每個(gè)用戶的精雕細(xì)琢,它涵蓋了Java開(kāi)發(fā)底層代碼中的方方面面,它既是大型項(xiàng)目開(kāi)發(fā)中解決小問(wèn)題的利器,也是小型項(xiàng)目中的效率擔(dān)當(dāng)。
Hutool是項(xiàng)目中“util”包友好的替代,它節(jié)省了開(kāi)發(fā)人員對(duì)項(xiàng)目中公用類和公用工具方法的封裝時(shí)間,使開(kāi)發(fā)專注于業(yè)務(wù),同時(shí)可以最大限度的避免封裝不完善帶來(lái)的bug。
粉絲福利:108本java從入門(mén)到大神精選電子書(shū)領(lǐng)取
???
?長(zhǎng)按上方鋒哥微信二維碼?2 秒 備注「1234」即可獲取資料以及 可以進(jìn)入java1234官方微信群
感謝點(diǎn)贊支持下哈?
