これらのコードを理解するために、それは主にASPのバイナリデータのオブジェクトを理解することです、adodb.stream!このプログラムは、主にadodb.streamを使用しています。この基盤がある場合、その他のポイント、勾配の背景色、数字、短いストローク、OCRの認識を改善することなど、さらに機能を追加できます。昨日はまだ良い識別エンジンはありません。画像検証コードを認識していると主張する検証コードの90%をダウンロードしました。 4321〜89910を識別するため、画像コードはさらに安全です。 インターネットでの暴力的なクラッキングの方法を見ました。追加のコードを使用して、エラーアカウントと50のパスワード、パスワードエラー、および些細なIP秒のアンチリフレッシュインターバル登録ページ、ログインを禁止するとページは、このように外部の提出を提出することを禁止されます。 ASPファイル:code.asp データファイル:body.fix、head.fix 使用法:<img src = "code.asp"> <% Response.buffer = true numcode functionnumcode() Response.Expires = -1 response.addheader「プラグマ」、「ノーキャッシュ」 response.addheader "cache-clm"、 "no-cache" Dim Znum、I、J Dim Ados、Ados1 タイマーをランダム化します ランダムな4桁を生成します。 Znum = Cint(8999*rnd 1000) セッションに合格します session( "getCode")= Znum forループは、ランダム数を3つの和解3の配列に配置することです。これは、その後の配列変換に提供するのに便利です Dim Zimg(3)、NSTR NSTR = CSTR(ZNUM) i = 0〜3の場合 zimg(i)= cint(mid(nstr、i 1,1))) 次 Dim Pos '画像データ操作を使用するために、2つのadodb.streamバイナリオブジェクトを定義します。 ados = server.createObject( "adodb.stream")を設定します ados.mode = 3 ados.type = 1 ados.open ados1 = server.createobject( "adodb.stream")を設定します ados1.mode = 3 ados1.type = 1 ados1.open 'ロード0〜9デジタルデータ10x100、GBRアレイデータ、各320バイト、10番号3200byte 'bgr oneポイント、10x10ポイント数、1ポイント3バイト(バイナリ8ビット、16進数00〜ff) '10ポイントのライン00 00 00 00 00 00 00 00 00 00 00 -byte 32バイトなので、10x100は長い画像よりも少なく、各番号10x10は320バイトです '広く大きく成長している人は、マーク0000を終了する方法はありません。直接300バイトです これらは、BMP 24bitのデータです。 「頭に関しては、長さと幅、画像がマーキングを開始するなど、非常にシンプルです。 ados.loadfromfile(server.mappath( "body.fix")) ados1.write ados.read(1280) 'ループの最初のもの、および対応する4つの数値は、10x100から生成された乱数の数から抽出されます しかし、垂直数の配列 i = 0〜3の場合 ados.position =(9-zimg(i))*320 ados1.position = i*320 ados1.write ados.read(320) 次 「使い果たされたADOSのデータをクリアし、ヘッダーファイルの新しい画像ヘッド54バイトを調整します ados.loadfromfile(server.mappath( "head.fix")) pos = lenb(ados.read()) ados.positation = pos 'POS位置を指定すると、54バイトの位置にグラフィックデータを追加できます ループの2番目、垂直ブロックから水平数値ブロックまでの数の数の数 この方法は、4回の320バイトを抽出して、ADOSオブジェクトに30バイトを書き込み、2番目の行をシフトする画像データを抽出することです。 30バイトは、BMPに00 00の行を持つエンドラベルによるものです。 I = 0〜9ステップ1の場合 j = 0〜3の場合 ADOS1.POSITION = I*32 J*320 ados.positation = pos 30*ji*120 ados.write ados1.read(30) 次 次 ados.positation = 0 Response.binaryWriteは、クライアントに画像データを直接送信します Response.ContentType = "image/bmp" respons.binarywrite ados.read() Ados.Close:Ados = Nothingを設定します ADOS1.CLOSE:ADOS1 =何も設定しません エンド関数 |