<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          springboot+captcha生成驗(yàn)證碼

          共 2647字,需瀏覽 6分鐘

           ·

          2020-09-30 12:13

          點(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)贊支持下哈?

          瀏覽 180
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天摸天天摸 | 日屄在线看| 无人无码深夜久久 | 欧美激情在线 | 国产乱码操逼片 |