Java Verification Code-Chinese character Verification code

Source: Internet
Author: User
Tags border color set background

Today compiled a Java implementation of the Chinese character input verification code

Mainly contains two classes, one is to generate a verification code, one is to determine whether the verification code input is correct

The realization principle is very simple, the Chinese character and the interference line generation picture and saves the Chinese character to the session, the foreground obtains each time generates the verification code picture and compares with the text box value and the session value, the function is how simple.

  • Generate Chinese character verification code source code display

  • 1  PackageXwcms.net.service;2 ImportJava.awt.Color;3 ImportJava.awt.Font;4 ImportJava.awt.Graphics;5 ImportJava.awt.Graphics2D;6 ImportJava.awt.image.BufferedImage;7 Importjava.io.IOException;8 ImportJava.util.Random;9 ImportJavax.imageio.ImageIO;Ten Importjavax.servlet.ServletException; One ImportJavax.servlet.http.HttpServlet; A Importjavax.servlet.http.HttpServletRequest; - ImportJavax.servlet.http.HttpServletResponse; - /** the * Generate random characters -  *  -  * @authorXW Material Network provides -  *  +  */ -  Public classDrawImageextendsHttpServlet { +      Public Static Final intWIDTH = 120; A      Public Static Final intHEIGHT = 30; at      Public voiddoget (httpservletrequest request, httpservletresponse response) -             throwsservletexception, IOException { -          This. DoPost (request, response); -     } -      Public voidDoPost (httpservletrequest request, httpservletresponse response) -             throwsservletexception, IOException { inRequest.setcharacterencoding ("Utf-8"); -Response.setcontenttype ("Text/html;charset=utf-8"); to         //Create Cache +BufferedImage bi =Newbufferedimage (WIDTH, HEIGHT, - Bufferedimage.type_int_rgb); the         //Get Canvas *Graphics g =bi.getgraphics (); $         //Set Back ColorPanax Notoginseng SetBackground (g); -         //Set Border the SetBorder (g); +         //Draw Interference Lines A Drawrandomline (g); the         //Write random number +String random =Drawrandomnum ((graphics2d) g); -         //the existence of random Chinese characters in the session $Request.getsession (). SetAttribute ("Checkcode", random); $         //writing a graphic to a browser -Response.setcontenttype ("Image/jpeg"); -         //Header control Browser do not cache theResponse.setdateheader ("Expries", 1); -Response.setheader ("Cache-control", "No-cache");WuyiResponse.setheader ("Pragma", "No-cache"); the         //write a picture to a browser -Imageio.write (BI, "JPG", Response.getoutputstream ()); Wu     } -     /** About * Set Background color $      *  -      * @paramg -      */ -     Private voidSetBackground (Graphics g) { A         //Set Color + G.setcolor (color.white); the         //Fill Area -G.fillrect (0, 0, WIDTH, HEIGHT); $     } the     /** the * Set Border the      *  the      * @paramg -      */ in     Private voidSetBorder (Graphics g) { the         //Set Border color the G.setcolor (color.blue); About         //border Area theG.drawrect (1, 1, WIDTH-2, HEIGHT-2); the     } the     /** + * Draw Random lines -      *  the      * @paramgBayi      */ the     Private voidDrawrandomline (Graphics g) { the         //Set Color - G.setcolor (color.green); -         //set the number of lines and draw lines the          for(inti = 0; I < 5; i++) { the             intX1 =NewRandom (). Nextint (WIDTH); the             intY1 =NewRandom (). Nextint (HEIGHT); the             intx2 =NewRandom (). Nextint (WIDTH); -             inty2 =NewRandom (). Nextint (HEIGHT); the g.drawline (x1, y1, x2, y2); the         } the     }94     /** the * Draw random characters the      *  the      * @paramg98      * @return About      */ -     PrivateString Drawrandomnum (graphics2d g) {101StringBuffer SB =NewStringBuffer ();102         //Set Color103 G.setcolor (color.red);104         //Set Font theG.setfont (NewFont ("Arial", Font.Bold, 20));106         //prepare common Chinese character sets107         String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u 5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\ U51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\ U4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\ U7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\ U800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf\u53d1\u5de5\u5411\u4e8b\u547d\u7ed9\u957f\u6c34\u51e0\u4e49\ U4e09\u58f0\u4e8e\u9ad8\u624b\u77e5\u7406\u773c\u5fd7\u70b9\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\ U5403\u505a\u53eb\u5f53\u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\ U5149\u4ea7\u60c5\u8def\u5206\u603b\u6761\u767d\u8bdd\u4e1c\u5e2d\u6b21\u4eb2\u5982\u88ab\u82b1\u53e3\u653e\ u513f\u5e38\u6c14\u4e94\u7b2c\u4f7f\u5199\u519b\u5427\u6587\u8fd0\u518d\u679c\u600e\u5b9a\u8bb8\u5feb\u660e\u884c\u56e0\u522b \u98de\u5916\u6811\u7269\u6d3b\u90e8\u95e8\u65e0\u5f80\u8239\u671b\u65b0\u5e26\u961f\u5148\u529b\u5b8c\u5374\ u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4\u610f\ U591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb\u8005\ U5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\ U516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173\u4fe1\ U89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349\u8d8a\ U5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\ U5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012\u775b\ U5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41\u672a\u573a\u8be5\u5e76\u5e95\ U6df1\u523b\u5e73\u4f1f\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\ U5440\u571f\u6e05\u9633\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634\u6b64\u6cbb\u5317\u5fc5\u670d\ U96e8\u7a7f\u5185\u8bc6\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf\u54b1\u89c2\u82e6\u4f53\u4f17\ u901a\u51b2\u5408\u7834\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357\u67aa\u8bfb\u6c99\u5c81\u7ebf\ U91ce\u575a\u7a7a\u6536\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4\u5f1f\u80dc\u6559\u70ed\u5c55\ U5305\u6b4c\u7c7b\u6e10\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u5e2e\ U5566\u53d7\u7cfb\u4ee4\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\ U6797\u505c\u606f\u53e5\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6 ";108         intx = 5;109         //Control Word Count the          for(inti = 0; I < 4; i++) {111             //Set font rotation angle the             intdegree =NewRandom (). Nextint ()% 30;113             //interception of Chinese characters theString ch = base.charat (NewRandom (). Nextint (Base.length ())) + ""; the sb.append (CH); the             //Forward Angle117G.rotate (Degree * math.pi/180, X, 20);118g.DrawString (CH, x, 20);119             //Reverse Angle -G.rotate (-degree * math.pi/180, X, 20);121x + = 30;122         }123         returnsb.tostring ();124     } the}

    Java Chinese character Verification code Source:

  • Chinese character verification code. rar

Java Verification Code-Chinese character Verification code

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.