如何用java製做驗證碼

咱們都知道在網頁或者一些軟件登錄界面上,好比QQ會出現註冊/登陸驗證碼,那咱們如何製做驗證碼呢? 其實,所謂的驗證碼,在我看來,就是製做一張圖片,步驟以下: 1.獲取指定長度的隨機字符串,其聲明函數是:public String getRandomStr(String []regter,int leg,int strlh); 三個參數爲: 單個字符字符串數組,如:[]regter={"a","b","c"};,字符串數組長度,定義得到字符串長度; 實現函數以下: public String getRandomStr(String []regter,int leg,int strlh) {    Random intRandom = new Random();    StringBuffer str = new StringBuffer();    for (int i = 0; i < strlh; i++)   str.append(String.valueOf(regter[intRandom.nextInt(leg)]));   return str.toString(); } 2.將字符串「畫」在jpg格式圖片上,其聲明函數是:public void drawPicture(); 實現函數以下: public void drawPicture() {   BufferedImage image=new BufferedImage(Weight, Height,BufferedImage.TYPE_INT_RGB);//weight,height 是int型圖片長寬變量   Graphics g =image.getGraphics();   g.setColor(Color.WHITE);   g.fillRect(0, 0, Weight, Height);// ?---   g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,   RenderingHints.VALUE_ANTIALIAS_ON);  調用 getRandomStr函數   g.drawString();   而後優化 } 3.生成jpg格式圖片,其聲明函數是:public void createJpg(String path); 實現函數以下: public void createJpg(String path) {   try {              FileOutputStream fos = new FileOutputStream(path);          BufferedOutputStream bos = new BufferedOutputStream(fos);    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);    encoder.encode(image);    bos.close();   } catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } catch (ImageFormatException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } } 這樣工做基本完成。
相關文章
相關標籤/搜索