How to use ASP to make validation code pictures

Source: Internet
Author: User
Tags 0xc0 define chr include sort
Verification code in general, you can see some of the verification code picture that is so/

Why do I need authentication code

Effectively prevent a hacker to a specific registered user, using a specific program brute force to break the way to make constant landing attempts, that is, to prevent violent registration/Poor password/server rejection can affect the normal operation of the site behavior.

What is the operating mechanism of the Verification Code

Generates a session at the same time randomly produces the verification code, then through the form submits the data to compare with the verification code which saves in the session, correctly namely the verification code passes, otherwise the error prompts.


1,XBM file

This is a very simple example of showing XBM pictures, the digital mask is the main.

<%@ Language=javascript%>
<%
One of the simplest examples
Can be widely used in counters, clocks and so on any need to dynamically generate graphics places
By changing the value of contenttype, such as "Image/gif", you can make more beautiful graphics.

Response.ContentType = "Image/x-xbitmap";
Response.Write ("#define Counter_width 8\r\n"); Graphics width
Response.Write ("#define Counter_height 10\r\n");//Graphic high
Response.Write ("Static unsigned char counter_bits[]={\r\n");
Response.Write ("0x3c,0x66,0x60,0x60,0x30,0x18,0x0c,0x06,0x06,0x7e");//2 mask
Response.Write ("};\r\n");

%>

2, black and white XBM Random Verification Code (original author: John Crazy)

Xbm.asp: Main role, randomly display four-bit verification code, while generating session ("Validatecode")

<!--#include file= "numcode.asp"-->
<%
Response.Buffer = True
With Response
. Expires =-1
. AddHeader "Pragma", "No-cache"
. AddHeader "Cache-ctrol", "No-cache"
End With

Dim num
Randomize
num = Int (7999 * Rnd + 2000)
Session ("Validatecode") = num

Dim Image
Dim Width, Height
Dim digtal
Dim Length
Dim sort
DIM HC
Length = 4
HC = CHR & Chr (10)

Redim Sort (Length)

Digital = ""
For I = 1 to Length-len (num)
Digital = digital & "0"
Next
For I = 1 to Len (num)
Digital = digital & Mid (num, I, 1)
Next
For I = 1 to Len (digital)
Sort (i) = Mid (Digital, I, 1)
Next
Width = 8 * Len (digital)
Height = 10

Response.ContentType = "Image/x-xbitmap"

Image = "#define Counter_width" & Width & HC
Image = Image & "#define Counter_height" & Height & HC
Image = image & "static unsigned char counter_bits[] = {" & HC

For I = 1 to Height
For J = 1 to Length
Image = Image & A (sort (J), I) & ","
Next
Next

Image = Left (image, Len (image)-1)
Image = Image & "};" & HC

Response.Write Image
%>


Contains files <!--#include file= "numcode.asp" is the main content of the digital mask

Numcode.asp

<%
Dim A (10,10)

A (0,1) = "0x3c" ' number 0
A (0,2) = "0x66"
A (0,3) = "0xc3"
A (0,4) = "0xc3"
A (0,5) = "0xc3"
A (0,6) = "0xc3"
A (0,7) = "0xc3"
A (0,8) = "0xc3"
A (0,9) = "0x66"
A (0,10) = "0x3c"

A (1,1) = "0x18" ' number 1
A (1,2) = "0x1c"
A (1,3) = "0x18"
A (1,4) = "0x18"
A (1,5) = "0x18"
A (1,6) = "0x18"
A (1,7) = "0x18"
A (1,8) = "0x18"
A (1,9) = "0x18"
A (0,10) = "0x7e"

A (2,1) = "0x3c" ' Number 2
A (2,2) = "0x66"
A (2,3) = "0x60"
A (2,4) = "0x60"
A (2,5) = "0x30"
A (2,6) = "0x18"
A (2,7) = "0x0c"
A (2,8) = "0x06"
A (2,9) = "0x06"
A (2,10) = "0x7e"

A (3,1) = "0x3c" ' Number 3
A (3,2) = "0x66"
A (3,3) = "0xc0"
A (3,4) = "0x60"
A (3,5) = "0x1c"
A (3,6) = "0x60"
A (3,7) = "0xc0"
A (3,8) = "0xc0"
A (3,9) = "0x66"
A (3,10) = "0x38"

A (4,1) = "0x38" ' Number 4
A (4,2) = "0x3c"
A (4,3) = "0x36"
A (4,4) = "0x33"
A (4,5) = "0x33"
A (4,6) = "0x33"
A (4,7) = "0xFF"
A (4,8) = "0x30"
A (4,9) = "0x30"
A (4,10) = "0xFE"

A (5,1) = "0xFE" ' number 5
A (5,2) = "0xFE"
A (5,3) = "0x06"
A (5,4) = "0x06"
A (5,5) = "0x3e"
A (5,6) = "0x60"
A (5,7) = "0xc0"
A (5,8) = "0xc3"
A (5,9) = "0x66"
A (5,10) = "0x3c"

A (6,1) = "0x60" ' number 6
A (6,2) = "0x30"
A (6,3) = "0x18"
A (6,4) = "0x0c"
A (6,5) = "0x3e"
A (6,6) = "0x63"
A (6,7) = "0xc3"
A (6,8) = "0xc3"
A (6,9) = "0x66"
A (6,10) = "0x3c"

A (7,1) = "0xFF" ' Number 7
A (7,2) = "0xc0"
A (7,3) = "0x60"
A (7,4) = "0x30"
A (7,5) = "0x18"
A (7,6) = "0x18"
A (7,7) = "0x18"
A (7,8) = "0x18"
A (7,9) = "0x18"
A (7,10) = "0x18"

A (8,1) = "0x3c" ' number 8
A (8,2) = "0x66"
A (8,3) = "0xc3"
A (8,4) = "0x66"
A (8,5) = "0x3c"
A (8,6) = "0x66"
A (8,7) = "0xc3"
A (8,8) = "0xc3"
A (8,9) = "0x66"
A (8,10) = "0x3c"

A (9,1) = "0x3c" ' Number 9
A (9,2) = "0x66"
A (9,3) = "0xc3"
A (9,4) = "0xc3"
A (9,5) = "0x66"
A (9,6) = "0x3c"
A (9,7) = "0x18"
A (9,8) = "0x0c"
A (9,9) = "0x06"
A (9,10) = "0x03"
%>


As a reference to the following, save as Img.asp

<%
Yznum=trim (Request.Form ("Yznum"))
If yznum<> "" Then
if Int (session ("Validatecode")) =int (Yznum) Then
Response.Write ("true")
Else
Response.Write ("false")
End If
Else
Response.Write ("You did not enter the verification code")
End If
%>

<form action=img.asp method=post>

<input name= "Yznum" >
<input Type=submit name=submit1 value=goit>
</form>



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.