Procedure and principle of ASP Verification Code

Source: Internet
Author: User
##### Copyright reprinted. Please keep it. Thank you for your cooperation.
##### Some programs are taken from the network
##### Author: Yangzi
##### Email: yangzinet@hotmail.com
##### QQ: 21112856
##### Website: www.tingfo.net

Four pages in total: form. asp; chk. asp; num. asp; count. asp
Get a number. Encryption!
The decrypted image is converted into an xbm image.
Judging by session

Form. asp
<%
'### To encrypt/decrypt include this code in your page
'### Strmyencryptedstring = encryptstring (strstring)
'### Strmydecryptedstring = decryptstring (strmyencryptedstring)
#### You are free to use this code as long as credits remain in place
'### Also if you improve this code let me know.

Private function encryptstring (strstring)
'####################################### #############################
'### Crypt function (c) 2001 by Slavic kozyuk grindkore@yahoo.com ###
'### Arguments: strstring <--- string you wish to encrypt ###
'### Output: Encrypted hex string ###
'####################################### #############################

Dim charhexset, intstringlen, strtemp, strraw, I, intkey, effecffset
Randomize Timer

Intkey = round (RND * 1000000) + 1000000) '##### key bitsize
Effecffset = round (RND * 1000000) + 1000000) '##### keyoffset bitsize

If isnull (strstring) = false then
Strraw = strstring
Intstringlen = Len (strraw)

For I = 0 to intstringlen-1
Strtemp = left (strraw, 1)
Strraw = right (strraw, Len (strraw)-1)
Charhexset = charhexset & hex (ASC (strtemp) * intkey) & hex (intkey)
Next

Encryptstring = charhexset & "|" & hex (effecffset + intkey) & "|" & hex (effecffset)
Else
Encryptstring = ""
End if
End Function

Private function decryptstring (strcryptstring)
'####################################### #############################
'### Crypt function (c) 2001 by Slavic kozyuk grindkore@yahoo.com ###
'### Arguments: Encrypted hex stringt ###
'### Output: decrypted ASCII string ###
'####################################### #############################
'### Note this function uses hexconv () and get_hxno () functions ###
'### So make sure they are not removed ###
'####################################### #############################

Dim strraw, arhexcharset, I, intkey, effecffset, strrawkey, strhexcrypdata

Strrawkey = right (strcryptstring, Len (strcryptstring)-instr (strcryptstring, "| "))
Export ffset = right (strrawkey, Len (strrawkey)-instr (strrawkey, "| "))
Intkey = hexconv (left (strrawkey, instr (strrawkey, "|")-1)-hexconv (effecffset)
Strhexcrypdata = left (strcryptstring, Len (strcryptstring)-(LEN (strrawkey) + 1 ))

Arhexcharset = Split (strhexcrypdata, Hex (intkey ))

For I = 0 to ubound (arhexcharset)
Strraw = strraw & CHR (hexconv (arhexcharset (I)/intkey)
Next

Decryptstring = strraw
End Function

Private function hexconv (hexvar)
Dim hxx, hxx_var, multiply
If hexvar <> "" then
Hexvar = ucase (hexvar)
Hexvar = strreverse (hexvar)
Dim HX ()
Redim HX (LEN (hexvar ))
Hxx = 0
Hxx_var = 0
For hxx = 1 to Len (hexvar)
If multiply = "" Then multiply = 1
HX (hxx) = mid (hexvar, hxx, 1)
Hxx_var = (get_hxno (HX (hxx) * multiply) + hxx_var
Multiply = (multiply * 16)
Next
Hexvar = hxx_var
Hexconv = hexvar
End if
End Function

Private function get_hxno (ghx)
If ghx = "A" then
Ghx = 10
Elseif ghx = "B" then
Ghx = 11
Elseif ghx = "C" then
Ghx = 12
Elseif ghx = "D" then
Ghx = 13
Elseif ghx = "E" then
Ghx = 14
Elseif ghx = "F" then
Ghx = 15
End if
Get_hxno = ghx
End Function
%>

<%
Randomize
Num = int (7999 * RND + 2000) 'counter value
Num2 = encryptstring (Num)
Session ("pwdt") = num
%>
<Form action = "chk. asp" method = post>
Enter the verification code: <input type = "text" name = "PWDs">
"> <input type = submit value = submit>
</Form>

Chk. asp
<%
If trim (request. Form ("PWDs") <> trim (Session ("pwdt") then
%>
Input error: it should be: <% = SESSION ("pwdt") %>, But you entered: <% = request. Form ("PWDs") %>
<%
Else
%>
Entered correctly
<% End if %>

Count. asp
<! -- # Include file = "num. asp" -->
<%
'### To encrypt/decrypt include this code in your page
'### Strmyencryptedstring = encryptstring (strstring)
'### Strmydecryptedstring = decryptstring (strmyencryptedstring)
#### You are free to use this code as long as credits remain in place
'### Also if you improve this code let me know.

Private function encryptstring (strstring)
'####################################### #############################
'### Crypt function (c) 2001 by Slavic kozyuk grindkore@yahoo.com ###
'### Arguments: strstring <--- string you wish to encrypt ###
'### Output: Encrypted hex string ###
'####################################### #############################

Dim charhexset, intstringlen, strtemp, strraw, I, intkey, effecffset
Randomize Timer

Intkey = round (RND * 1000000) + 1000000) '##### key bitsize
Effecffset = round (RND * 1000000) + 1000000) '##### keyoffset bitsize

If isnull (strstring) = false then
Strraw = strstring
Intstringlen = Len (strraw)

For I = 0 to intstringlen-1
Strtemp = left (strraw, 1)
Strraw = right (strraw, Len (strraw)-1)
Charhexset = charhexset & hex (ASC (strtemp) * intkey) & hex (intkey)
Next

Encryptstring = charhexset & "|" & hex (effecffset + intkey) & "|" & hex (effecffset)
Else
Encryptstring = ""
End if
End Function

Private function decryptstring (strcryptstring)
'####################################### #############################
'### Crypt function (c) 2001 by Slavic kozyuk grindkore@yahoo.com ###
'### Arguments: Encrypted hex stringt ###
'### Output: decrypted ASCII string ###
'####################################### #############################
'### Note this function uses hexconv () and get_hxno () functions ###
'### So make sure they are not removed ###
'####################################### #############################

Dim strraw, arhexcharset, I, intkey, effecffset, strrawkey, strhexcrypdata

Strrawkey = right (strcryptstring, Len (strcryptstring)-instr (strcryptstring, "| "))
Export ffset = right (strrawkey, Len (strrawkey)-instr (strrawkey, "| "))
Intkey = hexconv (left (strrawkey, instr (strrawkey, "|")-1)-hexconv (effecffset)
Strhexcrypdata = left (strcryptstring, Len (strcryptstring)-(LEN (strrawkey) + 1 ))

Arhexcharset = Split (strhexcrypdata, Hex (intkey ))

For I = 0 to ubound (arhexcharset)
Strraw = strraw & CHR (hexconv (arhexcharset (I)/intkey)
Next

Decryptstring = strraw
End Function

Private function hexconv (hexvar)
Dim hxx, hxx_var, multiply
If hexvar <> "" then
Hexvar = ucase (hexvar)
Hexvar = strreverse (hexvar)
Dim HX ()
Redim HX (LEN (hexvar ))
Hxx = 0
Hxx_var = 0
For hxx = 1 to Len (hexvar)
If multiply = "" Then multiply = 1
HX (hxx) = mid (hexvar, hxx, 1)
Hxx_var = (get_hxno (HX (hxx) * multiply) + hxx_var
Multiply = (multiply * 16)
Next
Hexvar = hxx_var
Hexconv = hexvar
End if
End Function

Private function get_hxno (ghx)
If ghx = "A" then
Ghx = 10
Elseif ghx = "B" then
Ghx = 11
Elseif ghx = "C" then
Ghx = 12
Elseif ghx = "D" then
Ghx = 13
Elseif ghx = "E" then
Ghx = 14
Elseif ghx = "F" then
Ghx = 15
End if
Get_hxno = ghx
End Function
%>

<%
Dim image
Dim width, height
Dim num
Dim Digtal
Dim Length
Dim sort
Length = 4' custom counter Length

Redim sort (length)

Num = CINT (decryptstring (request. querystring ("sksid ")))
Digital = ""
For I = 1 to length-len (Num) 'fill in 0
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) 'image width
Height = 10' the height of the image, which is a fixed value in this example.

Response. contenttype = "image/X-xbitmap"

Hc = CHR (13) & CHR (10)

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) 'remove the last comma
Image = Image & "};" & HC
%>
<%
Response. Write Image
%>

Num. 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"

%>

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.