1。画像検証コードの概要:
多くのウェブサイトには実装があります
効果:
システムセキュリティを改善するため
検証コードを使用すると、ユーザー名、パスワード、その他の情報を入力した後、ユーザーに画像にテキストを入力するように依頼できます。ユーザーが提出した後、システムは最初にセッションから生成された検証コードを抽出し、ユーザーが入力した検証コードと比較します。比較が等しい場合、それはユーザーがログインインターフェイスからログインしたことを意味します。そうでなければ、それはユーザーが違法であることを意味します。検証コードを使用して、システムを使用する前に正常にログインする必要があることを確認して、ユーザーがアドレスバーにアクセスするように直接入力しないようにします。
つまり、検証コードを使用して、ユーザーはまずログインインターフェイスからログインする必要があります。
2。検証実装方法
2つの重要なクラスが使用され、これらの2つのクラスは画像の出力に関連しています。
BufferedImage IM = new BufferedImage(60,20、bufferedimage.type_int_rgb); //最初のパラメーターIMは画像オブジェクトを表します// JPGは画像出力タイプ// Response.getOutputStream()を表します。サーブレットは、画像をImageio.write(im、 "jpg"、Response.getOutputStream())に表示します。
3。実装手順
1. bufferedImageを使用して画像を生成し、Imageio出力を使用して、JPG形式として指定します
BufferedImage IM = new BufferedImage(60,20、bufferedimage.type_int_rgb); //最初のパラメーターIMは画像オブジェクトを表します// JPGは画像出力タイプ// Response.getOutputStream()を表します。サーブレットは、画像をImageio.write(im、 "jpg"、Response.getOutputStream())に表示します。
2。画像描画オブジェクトを取得します
Graphics g = im.getGraphics();
3.図面エリアに記入します
ランダムrm = new random(); color c = new Color(rm.nextint(255)、rm.nextint(255)、rmextint(255)); g.setcolor(c); //全体像の色g.fillrect(0、0、60、20);
4。画像への出力番号
g.setColor(new Color(rm.Nextint(255)、rm.nextint(255)、rm.nextint(255))); g.setfont(new Font( "Chinese lishu"、font.bold | font.italic、28)); g.drawstring( "8"、1、18);
5。ランダム4桁
//(int i = 0; i <4; i ++){g.setColor(new Color(rm.nextint(255)、rm.nextint(255)、rm.nextint(255)))の4桁の数値をランダムに生成します。 g.setFont(new Font( "Gungsuh"、font.bold | font.italic、22)); g.drawstring( ""+rm.nextint(10)、(i*15)+2、18);}6.中国語をランダムに生成します
string str = "胸に雷があり、平らな湖のように顔をしている人は、一般と呼ばれることができます」。 for(int i = 0; i <4; i ++){g.setColor(new Color(rm.nextint(255)、rm.nextint(255)、rm.nextint(255)); g.setFont(new Font( "Gungsuh"、font.bold | font.italic、15)); g.drawstring( ""+str.charat(rm.nextint(str.length())、(i*15)+2、18);}7.ページにこの検証コードを導入する方法:
<img src="/ImageServlet">
8。ログイン比較のために番号を保存します
//取得した4つの数値をセッションに保存して、ユーザーがログインしたときにrequest.getSession()。setAttribute( "piccode"、sbf.tostring())を比較するために使用されるようにします。
9。ログイン検証
まず、ユーザーがデータベースに存在するかどうかを確認する必要があります。存在する場合は、入力された検証コードが一貫しているかどうかを確認する必要もあります。
検証が成功した後、関連する操作ページに転送する必要があります。
コード例:
boolean b_exist = login.validate(username、passwd); //ユーザーが存在する場合if(b_exist){string pic = ""+request.getsession()。getattribute( "piccode"); //検証コードを比較するif(!pic.equals( "")&& pic.equals(code)){// request.getsession()。 Response.sendredirect( "index.jsp"); }}上記はこの記事のすべての内容です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。また、wulin.comをもっとサポートしたいと思っています!