自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

小小驗(yàn)證碼,作用可真不??!

開(kāi)發(fā) 前端
我們?cè)陂_(kāi)發(fā)用戶(hù)登錄功能的時(shí)候,總是會(huì)被要求加一個(gè)驗(yàn)證碼的功能!那么,為什么要加這個(gè)驗(yàn)證碼?驗(yàn)證碼有什么作用?常見(jiàn)的驗(yàn)證碼有哪些?

我們?cè)陂_(kāi)發(fā)用戶(hù)登錄功能的時(shí)候,總是會(huì)被要求加一個(gè)驗(yàn)證碼的功能!那么,為什么要加這個(gè)驗(yàn)證碼?驗(yàn)證碼有什么作用?常見(jiàn)的驗(yàn)證碼有哪些?

[[335800]]

驗(yàn)證碼就是為了增強(qiáng)網(wǎng)站的安全性,防止機(jī)器暴力破解。驗(yàn)證碼一般都會(huì)設(shè)置為歪歪扭扭的圖片,這樣做的目的也是為了增加機(jī)器識(shí)別的難度。

機(jī)器一般會(huì)通過(guò)枚舉法進(jìn)行匹配驗(yàn)證碼,枚舉法是利用計(jì)算機(jī)運(yùn)算速度快、精確度高的特點(diǎn),對(duì)要解決問(wèn)題的所有可能情況,一個(gè)不漏地進(jìn)行檢驗(yàn),從中找出符合要求的答案,因此枚舉法是通過(guò)犧牲時(shí)間來(lái)?yè)Q取答案的全面性。

為了防止機(jī)器暴力破解,驗(yàn)證碼一般會(huì)有一個(gè)過(guò)期時(shí)間,并且每個(gè)驗(yàn)證碼只能被使用一次。

設(shè)置驗(yàn)證碼有效時(shí)長(zhǎng):

  1. redisService.setCacheObject(verifyKey, verifyCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); 

每次使用驗(yàn)證碼后刪除redis:

  1. private void checkCode(String code, String uuid) throws ValidateCodeException { 
  2.     if (StringUtils.isEmpty(code)) { 
  3.         throw new ValidateCodeException("圖片驗(yàn)證碼不能為空"); 
  4.     } 
  5.     if (StringUtils.isEmpty(uuid)) { 
  6.         throw new ValidateCodeException("圖片驗(yàn)證碼已失效"); 
  7.     } 
  8.     String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; 
  9.     String captcha = redisService.getCacheObject(verifyKey); 
  10.     redisService.deleteObject(verifyKey); 

IE瀏覽器下使用GET發(fā)送請(qǐng)求時(shí),如果兩次請(qǐng)求的地址和參數(shù)相同,在不刷新頁(yè)面的情況下,瀏覽器會(huì)緩存第一次請(qǐng)求的內(nèi)容,服務(wù)端更新后瀏覽器仍然顯示第一次的內(nèi)容。這也就是為什么我們總會(huì)看到驗(yàn)證碼請(qǐng)求地址上會(huì)增加一個(gè)隨機(jī)數(shù)的原因。

  1. https://ip:port?getCode?random = new Date().getTime(); 

常見(jiàn)的驗(yàn)證碼:

 

  • 四位數(shù)字,隨機(jī)的數(shù)字字符串,最原始的驗(yàn)證碼,驗(yàn)證作用幾乎為零。
  • 隨機(jī)數(shù)字+字母及干擾像素的圖片。
  • 滑動(dòng)拼圖(這種方式完全是由前端完成的)。

本文轉(zhuǎn)載自微信公眾號(hào)「Java旅途」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java旅途公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Java旅途
相關(guān)推薦

2013-06-19 10:19:59

2020-11-16 07:28:53

驗(yàn)證碼

2009-08-11 14:05:28

JSP驗(yàn)證碼

2009-02-09 14:17:36

2021-01-19 10:29:34

短信驗(yàn)證碼密碼

2017-12-21 07:38:19

2015-03-23 17:58:04

驗(yàn)證碼倒計(jì)時(shí)并行

2015-09-21 15:31:05

php實(shí)現(xiàn)驗(yàn)證碼

2022-02-11 07:10:15

驗(yàn)證碼

2015-03-17 09:28:04

2011-11-02 12:43:33

2011-11-02 16:46:41

2019-06-18 07:12:25

驗(yàn)證碼漏洞加密

2009-08-13 10:47:29

C#創(chuàng)建驗(yàn)證碼

2016-11-14 15:40:01

Android

2009-12-11 15:17:52

PHP驗(yàn)證碼調(diào)用

2009-12-16 15:46:41

Ruby on rai

2016-11-03 13:33:31

2016-11-08 19:19:06

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)