-
圖片驗(yàn)證大概思路: 在login()方法里面通過getElementById找到“insert”,獲得它對(duì)應(yīng)的子節(jié)點(diǎn),然后遍歷所有的子節(jié)點(diǎn)獲得對(duì)應(yīng)得id號(hào)和前綴為“img_”,取出top和left,拼接成字符串賦值給location,最后提交submit給 public String login(……)這個(gè)處理層方法,因?yàn)槊繌垐D片都有對(duì)應(yīng)的唯一key,所有new出Cookie對(duì)象通過getUniqueKey()賦值給“note”,最后判斷是否拿到note這個(gè)value,如果沒有拿到直接返回“error”錯(cuò)誤頁面,拿到就進(jìn)入下一層條件語句繼續(xù)判斷,最后判斷頁面?zhèn)鬟^來的location和Cache里面的ImageResult驗(yàn)證,通過就返回給OK的界面,否則相反查看全部
-
圖片合并 從左上角起始點(diǎn)開始計(jì)算,order負(fù)責(zé)順序,定義x1負(fù)責(zé)第一排0,1,2,3。定義x2負(fù)責(zé)第二排4,5,6,7 int x = (order%4)*200 —>x坐標(biāo) int y = order <4 ? 0 : 200 —>x不變,改變y 通過setRGB方法設(shè)置圖片的位置信息 通過x1+=width和x2+=width以此累加 UUID是java.util里面生成主機(jī)唯一ID的類,以確保唯一性查看全部
-
無驗(yàn)證碼--垃圾騷擾查看全部
-
驗(yàn)證碼歷史查看全部
-
生成圖片算法<br> random(int min,int max),random(int min,int max,Integer...not)從ImageGroup中 group1-group11里面隨機(jī)取出一個(gè)數(shù)字,再從ImageGroup找到對(duì)應(yīng)的key,拿到對(duì)應(yīng)的keyGroup<br> int num = random(0,imageGroupMap.size()-1);<br> String name = new ArrayList<String>(imageGroupMap.keySet()).get(num);<br> ImageGroup keyGroup = imageGroupMap.get(name);<br> keyGroup的思路可以從素材的分類可以看出<br> int leftCount = 8 - keyGroup.getCount();這段代碼是指在keyGroup得到圖片的數(shù)量,然后得到剩下還需要補(bǔ)充的圖片數(shù)量<br> case1:leftCount==4<br> 如果隨機(jī)到偶數(shù),則在數(shù)量是4的圖片里面拿,也就是4+4=8;<br> 如果隨機(jī)到奇數(shù),則在數(shù)量是2的圖片里面拿,也就是4+2+2=8;<br> 第二次加2調(diào)用random帶有三個(gè)參數(shù)的方法,是為了防止下一次刷新時(shí)上兩張圖片又重復(fù)出現(xiàn)<br> case2:leftCount==6<br> 如果隨機(jī)到偶數(shù),則在數(shù)量是6的圖片里面拿,也就是2+4+2=8;<br> 如果隨機(jī)到奇數(shù),則在數(shù)量是6的圖片里面拿,也就是2+2+2+2=8;<br> 奇數(shù)代碼處理類似leftCount是4的情況查看全部
-
驗(yàn)證碼最初的原型是為了防止垃圾信息騷擾,Luis von Ahn 就發(fā)明了 CAPTCHA ,CAPTCHA全稱為“Completely Automated Public Turing Test To Tell Computers and Humans Apart”意思就是全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試,后來不斷的升級(jí),出現(xiàn)了圖片驗(yàn)證碼,語音驗(yàn)證碼,還有更高級(jí)得去驗(yàn)證碼。但是語音驗(yàn)證碼的成功率不是很高,去驗(yàn)證碼是根據(jù)用戶的使用習(xí)慣識(shí)別是不是用戶本人操作,從而選擇是否出示驗(yàn)證碼查看全部
-
JS代碼思路羅列 document.getElementById(“insert”)去獲取包裝整個(gè)驗(yàn)證圖片的div(width=“300” height=“150”), 通過while循環(huán)去獲取div里面每張小圖對(duì)應(yīng)的偏移量 while(obj) { leftValue += obj.offsetLeft; topValue += obj.offsetTop; obj = obj.offsetParent;返回一個(gè)對(duì)象的引用,這個(gè)對(duì)象是距離調(diào)用offsetParent的元素最近的 } 接下來通過window.event時(shí)間去獲取觸發(fā)event對(duì)象的元素 獲取那個(gè)imooc那個(gè)圖標(biāo)的位置,imgDivId是給每個(gè)每張圖片設(shè)置一個(gè)id標(biāo)識(shí) document.createElement()是在對(duì)象中創(chuàng)建一個(gè)對(duì)象,很好理解設(shè)置成塊級(jí)元素后面容易給定寬度高度定義它們的偏移位置 最后通過inline解決div排擠問題,使每次點(diǎn)擊都能把各個(gè)div自動(dòng)排為一行,就象段內(nèi)的文字一樣~ removeSelf就是再次點(diǎn)擊達(dá)到移除效果查看全部
-
采用SpringMVC框架,具有分離控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制,包含多種視圖技術(shù)~查看全部
-
設(shè)計(jì)思想以及各個(gè)包、類的分工安排查看全部
-
方案二(相比方案一是為了實(shí)現(xiàn)更好的用戶體驗(yàn)) 跟方案一不同地方在于第3、4步, 第三步考慮不同驗(yàn)證碼提交的驗(yàn)證碼是不一樣,加入坐標(biāo)這個(gè)概念作為標(biāo)識(shí),最后在服務(wù)器端同樣加入坐標(biāo)作為標(biāo)識(shí)查看全部
-
方案一 1.瀏覽器請(qǐng)求驗(yàn)證碼圖片; 2.服務(wù)器返回驗(yàn)證碼圖片以及圖片標(biāo)識(shí); 3.服務(wù)器提交驗(yàn)證碼; 4.服務(wù)器驗(yàn)證圖片內(nèi)容及標(biāo)識(shí);查看全部
-
驗(yàn)證碼的歷史追溯<br> 1.無驗(yàn)證碼,垃圾騷擾;(這個(gè)如果有自己的博客或者網(wǎng)站就知道驗(yàn)證碼的利害)<br> 2Luis von Ahn — CAPTCHA ;<br> P.S(Luis von Ahn這個(gè)是一個(gè)神奇的人物,大家可以看作是驗(yàn)證碼背后的男人<br> CAPTCHA全程為“Completely Automated Public Turing Test To Tell Computers and Humans Apart”意思就是全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試)<br> 3.不斷的升級(jí);<br> 4.去驗(yàn)證碼。查看全部
-
方案二查看全部
-
方案一查看全部
-
驗(yàn)證碼查看全部
舉報(bào)
0/150
提交
取消