Javaのコード検証ツール

 

PINコードは次のようなコードを意味します:

 

javax.imageio.ImageIOインポート; 
java.awtのインポート* ;.
インポートjava.awt.image.BufferedImage;
インポートjava.awt.image.RenderedImage;
インポートjava.io.FileOutputStreamは、
インポートにjava.io.OutputStream;
java.utilのインポートクラス.HashMap;
インポートjava.util.Map;
インポートjava.util.Randomの;

/ **
* @titleコードツール
* @authorボート
* /
publicクラスImageUtil {

プライベート静的INT幅= 90、画像幅の//定義
プライベート静的int型の高さ= 30;像高の//定義

//コード検証5のセット。
/ *プライベート静的INT codeCount = 5 ; コードの数は、画像//定義に表示された
プライベート静的int型XX = 13、* /

設定// 4つのコード
画像ディスプレイ上に定義されたコードの//数; INT codeCount = 4プライベート静的
プライベート静的int型XX = 15;

プライベート静的int型codeY = 23;
プライベート静的int型fontHeight = 22;

プライベート静的チャー[] codeSequence = { 'A'、 'B'、 'C'、 'D'、 'E'、 'F'、 'G'、 'H'、 'I'、 'J'、「K 」、 'L'、 'M'、 'N'、 'O'、 'P'、 'Q'、R ''、 'S'、 'T'、 'U'、 'V'、 'W'、 'X'、 'Y'、 'Z'、 ''、 'B'、 'C'、 'D'、 'E'、 'F'、 'G'、 'H'、 'I'、 'J 」、 'K'、 'L'、 'M'、 'N'、 'O'、 'P'、 'Q'、R ''、 'S'、 'T'、 'U'、V ''、 '、 '0'、 'W'、 'X'、 'Y'、 'Z'










=新規新しいbuffImgたBufferedImage BufferedImageの(幅、高さ、BufferedImage.TYPE_INT_RGB);
// buffImg.createGraphicsのGraphics2DのGd =();
//のGraphics2DのGd =(のGraphics2D)buffImg.getGraphics();
グラフィックbuffImg.getGraphicsのGd =();

/乱数ジェネレータを作成する/クラス
新しい=(ランダム新しいランダムランダムに);

//画像の白色充填
gd.setColor(Color.WHITE)を、
gd.fillRect(0、0、幅、高さ);

//フォントを作成し、フォントサイズは、画像の高さに応じて設定されるべきです。
新しい新しいフォントフォント=フォント( "ゴシック"、Font.BOLD、FontHeightは);

//フォントを設定します。
gd.setFont(フォント);

//境界線を描画します。
//gd.setColor(Color.LIGHT_GRAY);
gd.setColor(getRandomColor())。
gd.drawRect(0、0、幅- 1、高さ- 1);

//ランダムに生成された干渉ライン40、認証コード画像がないように、簡単に他のプログラムを検出することができます。
gd.setColor(getRandomColor());

のための(INT I = 0; I <30; I ++){
int型X =にRandom.nextInt(幅);
int型にRandom.nextInt Y =(高さ);
int型にRandom.nextInt XL =( 12)である。
INT = YLにRandom.nextInt(12である);
gd.drawLine(X、Y、X + XL、YL + Y);
}

// randomCodeログイン時にユーザを認証するためにランダムに生成されたコードを保持します。
=新規新しいrandomCodeのStringBufferのStringBuffer();

//数codeCountランダムに生成されたコード。
用(INT I = 0; I <codeCount; I ++){

//デジタルコードは、ランダムに生成されます。
String.valueOfコード=文字列(codeSequence【にRandom.nextInt(codeSequence.length)]);

//カラーコードは、ランダムに画像の描画に生成されます。
gd.setColor(getRandomColor());

gd.drawString(コード、(I + 1)* XX ,, codeY。);

// 4つの組み合わせ乱数生成。
randomCode.append(コード);
}
地図の<string、オブジェクト> =新しい新規HashMapの地図の<string、オブジェクト>();
//店舗コードは、
( "コード"、randomCode)をmap.put;
//生成されたコードを入れたBufferedImageオブジェクト
map.put( "codePic"、buffImg);
リターンマップ;
}

/ **
*ランダムカラー
* /
パブリック静的色getRandomColor(){
ランダム新しい新RAN =ランダム();
INTは、赤色= ran.nextInt(256)。
INT緑色= ran.nextInt(256)。
INT青= ran.nextInt(256)。
カラー色=新色(赤、緑、青)。
色を返します。
}

//获取验证码
パブリック静的地図の<string、オブジェクト> getCheckCodePic(){
リターンImageUtil.generateCodeAndPic()。
}

公共の静的な無効メイン(文字列[] argsが){例外をスロー
//创建文件输出流对象
のOutputStreamアウト=新しいたFileOutputStream( "D://" +のSystem.currentTimeMillis()+ ".JPG")。
地図<文字列、オブジェクト>マップ= ImageUtil.generateCodeAndPic();
ImageIO.write((RenderedImageの)map.get( "codePic")、 "JPEG"、出);
System.out.println( "コード検証値:" + map.get( "コード")など);
}

}


直接使用してプロジェクトにコピーしたコードをコピーしてください!


おすすめ

転載: www.cnblogs.com/M87-A/p/12586742.html