Java,Springboot 實(shí)現(xiàn)算法驗(yàn)證碼加減法圖形驗(yàn)證碼让簿,Kaptcha 實(shí)現(xiàn)加減法驗(yàn)證碼

?最近在做一個(gè)加減法驗(yàn)證碼敬察,記錄下實(shí)現(xiàn)的過(guò)程。

通常Java實(shí)現(xiàn)驗(yàn)證碼的工具會(huì)用到?kaptcha 這個(gè)工具包尔当,但實(shí)現(xiàn)的驗(yàn)證碼都是圖形驗(yàn)證碼莲祸,沒(méi)有看到加法驗(yàn)證碼蹂安,查詢了相關(guān)資料,實(shí)現(xiàn)了加減法驗(yàn)證碼锐帜,效果如圖


首先是pom所需要的依賴

? ? ? ? <!--驗(yàn)證碼-->

? ? ? ? <dependency>

? ? ? ? ? ? <groupId>com.github.penggle</groupId>

? ? ? ? ? ? <artifactId>kaptcha</artifactId>

? ? ? ? ? ? <version>2.3.2</version>

? ? ? ? </dependency>

主要是配置類里面田盈,更改下驗(yàn)證碼的字符串,代碼如下

/**

* 生成驗(yàn)證碼配置

*

* @author hqk

*/

@Configuration

public class KaptchaConfig {

? ? @Bean

? ? public DefaultKaptcha producer() {

? ? ? ? Properties properties = new Properties();

? ? ? ? properties.put("kaptcha.border", "no");

? ? ? ? properties.put("kaptcha.textproducer.font.color", "black");

? ? ? ? properties.put("kaptcha.textproducer.char.space", "5");

? ? ? ? //如果需要生成算法驗(yàn)證碼加上一下配置

? ? ? ? properties.put("kaptcha.textproducer.char.string", "1234567890");

? ? ? ? //如果需要去掉干擾線

? ? ? ? properties.put("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");

? ? ? ? Config config = new Config(properties);

? ? ? ? DefaultKaptcha defaultKaptcha = new DefaultKaptcha();

? ? ? ? defaultKaptcha.setConfig(config);

? ? ? ? return defaultKaptcha;

? ? }

}

接下來(lái)寫個(gè)controller實(shí)驗(yàn)下缴阎,代碼如下

/**

* <p></p >

*

* @author hqk

* @version 1.0: SysLoginController.java v0.1 2019/6/25 上午10:44 hqk Exp$

*/

@RequestMapping("/app/system")

@Controller

public class SysLoginController {

? ? @Resource

? ? private StringRedisTemplate stringRedisTemplate;

? ? @Resource

? ? private Producer producer;

? ? @RequestMapping("number.jpg")

? ? public void number(HttpServletResponse response) throws IOException {

? ? ? ? response.setHeader("Cache-Control", "no-store, no-cache");

? ? ? ? response.setContentType("image/jpeg");

? ? ? ? //生成文字驗(yàn)證碼

? ? ? ? String text = producer.createText();

? ? ? ? //個(gè)位數(shù)字相加

? ? ? ? String s1 = text.substring(0, 1);

? ? ? ? String s2 = text.substring(1, 2);

? ? ? ? int count = Integer.valueOf(s1).intValue() + Integer.valueOf(s2).intValue();

? ? ? ? //生成圖片驗(yàn)證碼

? ? ? ? BufferedImage image = producer.createImage(s1 + "+" + s2 + "=?");

? ? ? ? //保存 redis key 自己設(shè)置

? ? ? ? //stringRedisTemplate.opsForValue().set("",String.valueOf(count));

? ? ? ? ServletOutputStream out = response.getOutputStream();

? ? ? ? ImageIO.write(image, "jpg", out);

? ? }

}

好了允瞧,java實(shí)現(xiàn)加法驗(yàn)證碼就實(shí)現(xiàn)了

代碼git地址:?https://github.com/qiankunhu/springbootdemo? git@github.com:qiankunhu/springbootdemo.git

推薦一下我自己的前端學(xué)習(xí)群562862926,里面有大神總結(jié)的一套前端教學(xué)視頻蛮拔,歡迎有興趣的朋友進(jìn)群一起學(xué)習(xí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末述暂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子建炫,更是在濱河造成了極大的恐慌畦韭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛跌,死亡現(xiàn)場(chǎng)離奇詭異艺配,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)衍慎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門转唉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人稳捆,你說(shuō)我怎么就攤上這事赠法。” “怎么了眷柔?”我有些...
    開(kāi)封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵期虾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我驯嘱,道長(zhǎng)镶苞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任鞠评,我火速辦了婚禮茂蚓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘剃幌。我一直安慰自己聋涨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布负乡。 她就那樣靜靜地躺著牍白,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抖棘。 梳的紋絲不亂的頭發(fā)上茂腥,一...
    開(kāi)封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天狸涌,我揣著相機(jī)與錄音,去河邊找鬼最岗。 笑死帕胆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的般渡。 我是一名探鬼主播懒豹,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驯用!你這毒婦竟也來(lái)了脸秽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晨汹,失蹤者是張志新(化名)和其女友劉穎豹储,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體淘这,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年巩剖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铝穷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佳魔,死狀恐怖曙聂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鞠鲜,我是刑警寧澤宁脊,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站贤姆,受9級(jí)特大地震影響榆苞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霞捡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一坐漏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碧信,春花似錦赊琳、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至呈枉,卻和暖如春趁尼,著一層夾襖步出監(jiān)牢的瞬間檐什,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工弱卡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乃正,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓婶博,卻偏偏與公主長(zhǎng)得像瓮具,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凡人,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容