在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    java驗(yàn)證碼代碼_JAVA生成驗(yàn)證碼代碼

    1 /**

    2 * 生成驗(yàn)證碼3 * 改造生成驗(yàn)證碼的方式,將圖片base64形式傳到前臺(tái),而不是直接傳驗(yàn)證碼到前臺(tái)4 *@return

    5 *@throwsIOException6 */

    7 public void imageCode() throwsIOException {8 HttpServletResponse resp =CommandContext.getResponse();9 HttpServletRequest req =CommandContext.getRequest();10 String method=req.getMethod();11 if(“OPTIONS”.equals(method)){12 return;13 }14 Map map=newHashMap();15

    16 //在內(nèi)存中創(chuàng)建圖象

    17 int width = 65, height = 38;18 BufferedImage image = newBufferedImage(width, height,19 BufferedImage.TYPE_INT_RGB);20 //獲取圖形上下文

    21 Graphics g =image.getGraphics();22 //生成隨機(jī)類

    23 Random random = newRandom();24 //設(shè)定背景色

    25 g.setColor(getRandColor(230, 255));26 g.fillRect(0, 0, 100, 40);27 //設(shè)定字體

    28 g.setFont(new Font(“Arial”, Font.CENTER_BASELINE | Font.ITALIC, 20));29 //產(chǎn)生0條干擾線,

    30 g.drawLine(0, 0, 0, 0);31

    32 //存放驗(yàn)證碼

    33 StringBuffer sRand = newStringBuffer();34 for (int i = 0; i < charCount; i++) {35 String singleCode =String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);36 sRand.append(singleCode);37 //將認(rèn)證碼顯示到圖象中

    38 g.setColor(getRandColor(100, 150));//調(diào)用函數(shù)出來(lái)的顏色相同,可能是因?yàn)榉N子太接近,所以只能直接生成

    39 g.drawString(singleCode, 14 * i + 5, 25);40 }41 for(int i=0;i

    47 HttpSession session =req.getSession();48 //獲取clientid

    49 String clientId=SystemUtil.getClientId(req);50 if(StringUtils.isEmpty(clientId)){51 //生成clientid

    52 String userAgent=req.getHeader(“User-Agent”);53 String sessionId=session.getId();54 String cip=IpPolicy.getClientIP(req);55 clientId=CodeUtil.genClientId(sessionId,cip,userAgent);56 }57 map.put(“clientId”, clientId);58 if(isValidateCodeCaseSensitive) {59 session.setAttribute(“randomCode”, sRand.toString());60 SystemUtil.push2Cache(clientId, sRand.toString());61 } else{62 session.setAttribute(“randomCode”, sRand.toString().toLowerCase());63 SystemUtil.push2Cache(clientId, sRand.toString().toLowerCase());64 }65 //圖象生效

    66 g.dispose();67 try{68

    69 ByteArrayOutputStream outputStream = newByteArrayOutputStream();70 ImageIO.write(image, “jpg”, outputStream);71 BASE64Encoder encoder = newBASE64Encoder();72 String base64Img =encoder.encode(outputStream.toByteArray());73 base64Img=”data:image/jpg;base64, “+base64Img.replaceAll(“”, “”).replaceAll(“r”, “”);//刪除 r;

    74 map.put(“verCode”, base64Img);75 Object jsonObj =JSONSerializer.toJSON(map);76 byte[] json = jsonObj.toString().getBytes(“UTF-8”);77 resp.setContentType(“text/plain;chartset=utf-8”);78 resp.setHeader(“Cache-Control”, “no-cache”);79 resp.setHeader(“Expires”, “0”);80 resp.setIntHeader(“Content-Length”, json.length);81 ServletOutputStream responseOutputStream =resp.getOutputStream();82 responseOutputStream.write(json);83 //以下關(guān)閉輸入流!

    84 responseOutputStream.flush();85 responseOutputStream.close();86 //獲得頁(yè)面key值

    87 return;88 } catch(IOException e) {89 logger.error(“生產(chǎn)驗(yàn)證碼出錯(cuò)”,e);90 throw new SystemException(“生產(chǎn)驗(yàn)證碼出錯(cuò)”,e);91 }92 }93

    94

    95 /**

    96 * 給定范圍獲得隨機(jī)顏色97 *98 *@paramfc99 *@parambc100 *@return

    101 */

    102 Color getRandColor(int fc, intbc) {103 Random random = newRandom();104 if (fc > 255)105 fc = 255;106 if (bc > 255)107 bc = 255;108 int r = fc + random.nextInt(bc -fc);109 int g = fc + random.nextInt(bc -fc);110 int b = fc + random.nextInt(bc -fc);111 return newColor(r, g, b);112 }

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月4日 21:15
    下一篇 2022年7月4日 21:15

    相關(guān)推薦

    • 筆記本最好配置(目前筆記本最好的配置)

      本文主要講的是筆記本最好配置,以及和目前筆記本最好的配置相關(guān)的知識(shí),如果覺得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 筆記本電腦什么配置好? 01 CPU:這個(gè)主要取決于頻率和…

      2022年11月26日
    • 淘寶直播平臺(tái)抽成多少(淘寶直播平臺(tái)抽成比例)

      隨著時(shí)代的發(fā)展,現(xiàn)在直播帶貨已經(jīng)成為主要帶貨方式,其中淘寶是主流帶貨平臺(tái),不少人在上面直播帶貨賺錢,一些小伙伴也想加入,那么淘寶直播平臺(tái)抽成多少?下面小編為大家?guī)?lái)淘寶直播平臺(tái)抽成…

      2022年11月24日
    • 白襯衫搭配什么褲子好看,女生襯衫穿法圖片

      說(shuō)起白襯衫和長(zhǎng)褲的搭配組合,不知道大家有沒有發(fā)現(xiàn),雖然是很常見的造型,可不同年齡段慣用的穿搭方式卻不相同,從而也穿出了不同的味道。簡(jiǎn)直是現(xiàn)在這個(gè)季節(jié),時(shí)髦精們的必備造型之一~ 70…

      2022年11月24日
    • 神舟戰(zhàn)神S7-DA5NS電腦預(yù)售 到手價(jià)僅需5399元

      神舟戰(zhàn)神S7-DA5NS正在京東商城預(yù)售搶購(gòu),預(yù)售到手價(jià)僅需5399元。其搭載了全新12代i5-12450H處理器,擁有2.0GHz八核十二線程效能,RTX3050 4G GDDR…

      2022年11月23日
    • 中興Axon 40 Ultra航天版發(fā)布時(shí)間官宣 或有18G+1TB版

      此前,中興手機(jī)官微曾預(yù)熱中興Axon 40 Ultra航天版。宣傳海報(bào)顯示,“太空堡壘,即將起航,TAIKONAUT(中國(guó)航天員) Ⅱ”。 2022年11月22日,中興手機(jī)發(fā)布消息…

      2022年11月22日
    • 天璣1300和8100哪個(gè)好差距大嗎 跑分性能參數(shù)區(qū)別對(duì)比

      天璣1300和天璣8100哪個(gè)好?近期有用戶在咨詢,手機(jī)處理器搭載的是天璣1300的好還是天璣8100的好?這兩款處理器之間哪一款更加出色呢?下面小編給大家?guī)?lái)具體區(qū)別對(duì)比,感興趣…

      2022年11月22日
    • 鬼的圖片(鬼的圖片 頭像)

      今天小編給各位分享鬼的圖片的知識(shí),其中也會(huì)對(duì)鬼的圖片 頭像進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 鬼長(zhǎng)什么樣子呀?(發(fā)圖片來(lái)) 鬼很可怕的,要裁圖片…

      2022年11月22日
    • word方框中打√符號(hào)教程 打鉤符號(hào)怎么打出來(lái)框怎么點(diǎn)擊就打上

      Word怎么在方框中打√符號(hào)?最近有用戶詢問這個(gè)問題,Word是一款很實(shí)用的辦公軟件,在編輯的時(shí)候需要輸入方框帶個(gè)√的符號(hào),很多用戶不知道怎么輸入,針對(duì)這一問題,本篇帶來(lái)了詳細(xì)的輸…

      2022年11月21日
    • 馬斯克凌晨一點(diǎn)半曬“代碼審查”現(xiàn)場(chǎng),編排他的段子比瘋狂星期四還多

      夢(mèng)晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號(hào) QbitAI 每一個(gè)真正會(huì)寫代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 每一個(gè)真正會(huì)寫代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 馬斯…

      2022年11月21日
    • 展字的各種寫法圖片(展筆順什么意思)

      昨天我們講解了上展下收,今天我們講解上收下展,看過(guò)昨天文章內(nèi)容的朋友,對(duì)今天所講的內(nèi)容應(yīng)該不難理解。 結(jié)構(gòu)八:上收下展。 簡(jiǎn)單來(lái)說(shuō)就是上邊部分的筆畫收縮,下邊部分筆畫舒展。詳細(xì)講解…

      2022年11月19日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息