欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Google?Kaptcha驗(yàn)證碼生成的使用實(shí)例說(shuō)明

 更新時(shí)間:2022年03月08日 10:56:40   作者:kl  
這篇文章主要為大家介紹了Google?Kaptcha驗(yàn)證碼的使用實(shí)例說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Kaptcha是什么?

kaptcha 是谷歌開(kāi)源的非常實(shí)用的驗(yàn)證碼生成工具,基于SimpleCaptcha的開(kāi)源項(xiàng)目。使用Kaptcha 生成驗(yàn)證碼十分簡(jiǎn)單并且參數(shù)可以進(jìn)行自定義。只需添加jar包配置下就可以使用,通過(guò)配置,可以自己定義驗(yàn)證碼大小、顏色、顯示的字符等等。下面就來(lái)講一下如何使用kaptcha生成驗(yàn)證碼以及在服務(wù)器端取出驗(yàn)證碼進(jìn)行校驗(yàn)。

怎么使用Kaptcha?

1.首先下載jar包

要項(xiàng)目使用Kaptcha肯定要依賴kaptcha的jar,maven項(xiàng)目的話直接加入如下依賴,非maven項(xiàng)目就自己下載jar包吧

<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>

官方下載鏈接:https://code.google.com/archive/p/kaptcha/downloads,當(dāng)然你得翻墻哈

2.配置kaptcha

以項(xiàng)目使用spring為例,配置一個(gè)默認(rèn)的Kaptcha的bean,如下

<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha" scope="singleton">
	    <property name="config">
	        <bean class="com.google.code.kaptcha.util.Config">
	            <constructor-arg>
	                <props>
	                	<prop key="kaptcha.session.key">kaptcha.code</prop>  
	                	<!-- 無(wú)邊框 -->
	                    <prop key="kaptcha.border">no</prop>
	                    <prop key="kaptcha.textproducer.font.color">black</prop>
	                    <!-- 渲染效果:水紋:WaterRipple;魚(yú)眼:FishEyeGimpy;陰影:ShadowGimpy -->
	                    <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop>
	                    <!-- 不要噪點(diǎn) -->
	                    <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop>
	                    <prop key="kaptcha.image.width">90</prop>
	                    <prop key="kaptcha.image.height">33</prop>
	                    <prop key="kaptcha.textproducer.font.size">25</prop>
	                    <prop key="kaptcha.textproducer.char.length">4</prop>
	                    <prop key="kaptcha.textproducer.char.space">5</prop>
	                    <!-- 和登錄框背景顏色一致 -->
	                    <prop key="kaptcha.background.clear.from">247,247,247</prop>
	                    <prop key="kaptcha.background.clear.to">247,247,247</prop>
	                </props>
	            </constructor-arg>
	        </bean>
	    </property>
	</bean>

3.將驗(yàn)證碼保存進(jìn)session中

將生成的驗(yàn)證碼保存進(jìn)session中,并輸出由驗(yàn)證碼生成的圖片流到頁(yè)面

@Autowired
	private Producer captchaProducer;
	@RequestMapping(value = "/kaptchaImage", method = RequestMethod.GET)
    public void kaptcha(HttpServletRequest req, HttpServletResponse rsp) {
		ServletOutputStream out = null;
		try {
	        HttpSession session = req.getSession();
	        rsp.setDateHeader("Expires", 0);
	        rsp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	        rsp.addHeader("Cache-Control", "post-check=0, pre-check=0");
	        rsp.setHeader("Pragma", "no-cache");
	        rsp.setContentType("image/jpeg");
	        String capText = captchaProducer.createText();
	        session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
	        BufferedImage image = captchaProducer.createImage(capText);
	        out = rsp.getOutputStream();
	        ImageIO.write(image, "jpg", out);
	        out.flush();
        }catch(IOException e)
		{
			throw new SystemException(e);
		} finally {
            try {
				out.close();
			} catch (IOException e) {
				throw new SystemException(e);
			}
        }
    }

4.驗(yàn)證碼校驗(yàn)

校驗(yàn)用戶輸入的驗(yàn)證碼和保存進(jìn)session的是否一直,達(dá)到驗(yàn)證目的

@RequestMapping(value = "/login", method = RequestMethod.POST, produces = "text/html; charset=utf-8")
	public String userLogin(String accountName, String password, String captcha, Boolean rememberMe, HttpServletRequest request) {
		 //從session中取出kaptcha生成的驗(yàn)證碼text值
	        String expected = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
	        //獲取用戶頁(yè)面輸入的驗(yàn)證碼
	        if(!captcha.equalsIgnoreCase(expected))
	        {
	        	request.setAttribute("error", "驗(yàn)證碼錯(cuò)誤!");
				return "/login";
	        }else
	        {
                    xxxx驗(yàn)證碼后的后續(xù)邏輯
                 }
}

Kaptcha驗(yàn)證碼配置

kaptcha.border  是否有邊框  默認(rèn)為true  我們可以自己設(shè)置yes,no  

kaptcha.border.color   邊框顏色   默認(rèn)為Color.BLACK  

kaptcha.border.thickness  邊框粗細(xì)度  默認(rèn)為1  

kaptcha.producer.impl   驗(yàn)證碼生成器  默認(rèn)為DefaultKaptcha  

kaptcha.textproducer.impl   驗(yàn)證碼文本生成器  默認(rèn)為DefaultTextCreator  

kaptcha.textproducer.char.string   驗(yàn)證碼文本字符內(nèi)容范圍  默認(rèn)為abcde2345678gfynmnpwx  

kaptcha.textproducer.char.length   驗(yàn)證碼文本字符長(zhǎng)度  默認(rèn)為5  

kaptcha.textproducer.font.names    驗(yàn)證碼文本字體樣式  默認(rèn)為new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)  

kaptcha.textproducer.font.size   驗(yàn)證碼文本字符大小  默認(rèn)為40  

kaptcha.textproducer.font.color  驗(yàn)證碼文本字符顏色  默認(rèn)為Color.BLACK  

kaptcha.textproducer.char.space  驗(yàn)證碼文本字符間距  默認(rèn)為2  

kaptcha.noise.impl    驗(yàn)證碼噪點(diǎn)生成對(duì)象  默認(rèn)為DefaultNoise  

kaptcha.noise.color   驗(yàn)證碼噪點(diǎn)顏色   默認(rèn)為Color.BLACK  

kaptcha.obscurificator.impl   驗(yàn)證碼樣式引擎  默認(rèn)為WaterRipple  

kaptcha.word.impl   驗(yàn)證碼文本字符渲染   默認(rèn)為DefaultWordRenderer  

kaptcha.background.impl   驗(yàn)證碼背景生成器   默認(rèn)為DefaultBackground  

kaptcha.background.clear.from   驗(yàn)證碼背景顏色漸進(jìn) &nbsp; 默認(rèn)為Color.LIGHT_GRAY  

kaptcha.background.clear.to   驗(yàn)證碼背景顏色漸進(jìn)   默認(rèn)為Color.WHITE  

kaptcha.image.width   驗(yàn)證碼圖片寬度  默認(rèn)為200  

kaptcha.image.height  驗(yàn)證碼圖片高度  默認(rèn)為50

效果圖如下

以上就是Google Kaptcha驗(yàn)證碼的使用實(shí)例說(shuō)明的詳細(xì)內(nèi)容,更多關(guān)于Google Kaptcha驗(yàn)證碼使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • .properties文件讀取及占位符${...}替換源碼解析

    .properties文件讀取及占位符${...}替換源碼解析

    本篇文章主要介紹了.properties文件讀取及占位符${...}替換源碼解析的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05
  • Java redisTemplate阻塞式處理消息隊(duì)列

    Java redisTemplate阻塞式處理消息隊(duì)列

    用redis中的List可以實(shí)現(xiàn)隊(duì)列,這樣可以用來(lái)做消息處理和任務(wù)調(diào)度的隊(duì)列。因此,本文將主要為大家介紹如何利用redisTemplate處理消息隊(duì)列,感興趣的小伙伴可以了解一下
    2021-12-12
  • JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解

    JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解

    這篇文章主要介紹了JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot實(shí)現(xiàn)Md5對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)加密的示例

    SpringBoot實(shí)現(xiàn)Md5對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)加密的示例

    本文主要介紹了SpringBoot實(shí)現(xiàn)Md5對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)加密的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式

    MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式

    這篇文章主要介紹了MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mybatis整合ehcache做三級(jí)緩存的實(shí)現(xiàn)方法

    mybatis整合ehcache做三級(jí)緩存的實(shí)現(xiàn)方法

    ehcache是一個(gè)快速內(nèi)存緩存框架,java項(xiàng)目里用起來(lái)很方便,下面這篇文章主要給大家介紹了關(guān)于mybatis整合ehcache做三級(jí)緩存的實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java簡(jiǎn)單實(shí)現(xiàn)SpringMVC+MyBatis分頁(yè)插件

    Java簡(jiǎn)單實(shí)現(xiàn)SpringMVC+MyBatis分頁(yè)插件

    自己最近搭建的一個(gè)SpringMVC+Mybatis的框架 屬于無(wú)實(shí)體類(lèi)的框架 并實(shí)現(xiàn)了Myabtis的自動(dòng)分頁(yè)和總數(shù)查詢 只要傳入分頁(yè)參數(shù)便能自動(dòng)查詢總數(shù)和分頁(yè) 總數(shù)封裝在參數(shù)里面執(zhí)行查詢后可以直接從參數(shù)中獲取
    2015-09-09
  • Java 匿名對(duì)象與匿名內(nèi)部類(lèi)的使用

    Java 匿名對(duì)象與匿名內(nèi)部類(lèi)的使用

    很多小伙伴對(duì)匿名對(duì)象和匿名內(nèi)部類(lèi)的寫(xiě)法有點(diǎn)陌生,本文主要介紹了Java 匿名對(duì)象與匿名內(nèi)部類(lèi)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)

    JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)

    項(xiàng)目中經(jīng)常會(huì)使用到導(dǎo)出功能,有導(dǎo)出Word,有導(dǎo)出Excel的,下面這篇文章主要給大家介紹了關(guān)于JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • Java concurrency之LockSupport_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency之LockSupport_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java concurrency之LockSupport的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論