国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > CMS建站 > 正文

動網驗證碼出現的問題及解決方法_動網論壇教程

2024-08-30 19:10:10
字體:
來源:轉載
供稿:網友

本人在論壇調試中出現的各種驗證碼問題及解決方法

 

1、把字母加入驗證碼字符集里,可是怎么無法通過驗證???

如:Const cCharSet = "0123456789ABC"

這是因為在Dv_ClsMain.asp中存在一段有問題的代碼,導致字母的驗證碼不能正確判斷所致

這個問題應該在7.1的時候就已經解決了呀。

CodeStr=Lcase(Trim(Request("CodeStr")))

這段代碼令得讀來的信息被小寫了

而下一段代碼:

If CStr(Session("GetCode"))=CStr(CodeStr) And CodeStr<>""  Then

比較的時候卻沒有把Session的內容小寫化

 

可以在兩個地方修改(二選其一,看個人愛好)

一、改Dv_ClsMain.asp

If CStr(Session("GetCode"))=CStr(CodeStr) And CodeStr<>""  Then

改為:

If CStr(LCase(Session("GetCode")))=CStr(CodeStr) And CodeStr<>""  Then

二、改Dv_GetCode.asp

Session(pSN) = DigtalStr '記錄入Session

改為:

Session(pSN) = LCase(DigtalStr) '記錄入Session

2、【動網驗證碼字母矢量庫的擴展

動網7.1與7.0相比,在驗證碼上作了大改動。7.0使用的是一個現成的MBP圖庫,內含0-9十個數字的圖形信息(每個圖形都是10*10像數)。因為這十個數字毫無變化,破解的起來還是比較容易的。
  到了7.1,至少在以下方面有了變化:一是用失量庫代替點陣庫,這樣可以產生任意尺寸的驗證碼圖片;二是字符串長度不僅局限于4個字節,可以使用任意長度,三是增加了變形和噪點處理,即使同一個字符重復出現,也可以產生不同的圖片,四是字符集不僅僅局限在十個數字,而可以擴展到其它字符,甚至連漢字也不在話下。
  但是,動網的程序中只提供了10個數字和“ABCD”四個字母的失量圖庫,并在字母“A”失量庫開始前留下這樣一句注釋:“以下為字母的矢量動作,有興趣的可以繼續”,也就是說如果你不動手擴展,就只能使用由這14個字符組成的字符集。
  本人懷著對動網的無限敬仰和濃厚興趣,動手擴展了這個失量庫,將26個大寫字母弄全了。
  在動手之前,有個問題必須先說明:一量引用字母,就必須正視數字“0”與字母“O”、數字“6”與字母“G”因為字形相近而產生的影響。字母“G”我可以設計得跟“6”不一致,但是字母“O”怎么設計都是一個圓圈,于是只好改它的數字“0”了——給它加上一條右上至左下的斜線。于是,數字“0”的失量庫完整如下:
'==========代碼開始==========
CDGen_SetDirection -60' 逆時針60度(相對于垂直線)
CDGen_FowardDraw -0.7' 反方向繪制0.7個單位
CDGen_SetDirection -60' 逆時針60度
CDGen_FowardDraw -0.7' 反方向繪制0.7個單位
CDGen_SetDirection 120' 順時針120度
CDGen_FowardDraw 1.5' 繪制1.5個單位
CDGen_SetDirection -60' 逆時針60度
CDGen_FowardDraw 0.7' 繪制0.7個單位
CDGen_SetDirection -60' 順時針120度
CDGen_FowardDraw 0.7' 繪制0.7個單位
CDGen_Close 0' 封閉當前筆與第0筆(0開始)
'添加一條斜線,以免與字母O混淆()
CDGen_MoveToMiddle 2, 100' 移動畫筆的位置到第3筆(0開始)的結尾處
CDGen_CloseToMiddle 0, 0' 將當前畫筆位置與第1筆(0開始)的開端封閉
'==========代碼結束==========
  在設計字母“E”的時候,考慮到三條水平線,要給它加上角度隨機量,隨機量很容易計算,如我要產生“正負20度”只要“20 - Rnd * 40”即可。但是原有的“CDGen_SetDirection”函數都是在以往的角度基礎上旋轉的,這樣在畫第二、三條水平線的時候角度會受前面的影響,比如如果三次都是正20,那最后一條線將產生60度的隨機量,于是我增加了一個函數“CDGen_SetDirectionFormZero”,它的作用是以0度為基準進行隨機量的設定,代碼如下:
'==========代碼開始==========
Sub CDGen_SetDirectionFormZero(nAngle)
 '按指定角度設定畫筆方向,與CDGen_SetDirection的區別是以0度為基準
 nAngle = Sgn(nAngle) * (Abs(nAngle) - nAngleRandom + Rnd * nAngleRandom * 2) / 180 * 3.1415926
 DirX = - Sin(nAngle)
 DirY = Cos(nAngle)
End Sub
'==========代碼結束==========
  下面就可以去補充其它字母的失量庫了,代碼如下:
'==========代碼開始==========
Case "E"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.9
Case "F"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.5
Case "G"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 120
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.4
 CDGen_MoveToMiddle 6, 0
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.4
Case "H"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -90
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 1, 100
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 1, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.5
Case "I"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 100
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.2
Case "J"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.4
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.6
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 120
 CDGen_FowardDraw 0.5
Case "K"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
Case "L"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_SetDirection -(110 - Rnd * 40)
 CDGen_FowardDraw 0.8
 CDGen_SetDirectionFormZero 0
 CDGen_FowardDraw -0.3
Case "M"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -0.5
 CDGen_SetDirection -30
 CDGen_FowardDraw 1
Case "N"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -45
 CDGen_FowardDraw 1.4
 CDGen_SetDirection 45
 CDGen_FowardDraw -1
Case "O"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_Close 0
Case "P"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_CloseToMiddle 0, 50
Case "Q"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_Close 0
 CDGen_MoveToMiddle 4, 100
 CDGen_SetDirectionFormZero -45
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 4, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.7
Case "R"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -80
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_CloseToMiddle 0, 50
 CDGen_SetDirectionFormZero -45
 CDGen_FowardDraw 0.7
Case "S"
 CDGen_SetDirection -45
 CDGen_FowardDraw -0.5
 CDGen_SetDirection -90
 CDGen_FowardDraw -0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 1
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.5
Case "T"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.8
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection 30
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
Case "U"
 CDGen_FowardDraw 1
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_SetDirection -60
 CDGen_FowardDraw 1
Case "V"
 CDGen_SetDirection -30
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -1.5
Case "W"
 CDGen_SetDirection -30
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -1
 CDGen_SetDirection -60
 CDGen_FowardDraw 1
 CDGen_SetDirection 60
 CDGen_FowardDraw -1.5
Case "X"
 CDGen_SetDirection -45
 CDGen_FowardDraw 1.4
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_FowardDraw -0.7
Case "Y"
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
Case "Z"
 CDGen_SetDirection -90
 CDGen_FowardDraw 1
 CDGen_SetDirection -45
 CDGen_FowardDraw -1.4
 CDGen_SetDirection 45
 CDGen_FowardDraw 1

 3、動網BBS8.0驗證碼看不清楚的修改方法

用記事本打開Dv_GetCode.asp文件,把上面幾行的個別數值修改為(紅色為修改后的,其他的不變):

Const nMaxSaturation = 100   ' 最大色彩飽和度
Const nBlankNoisyDotOdds = 0' 空白處噪點率
Const nColorNoisyDotOdds = 0 ' 有色處噪點率
Const nCharCount = 4      ' 產生的字符個數
Const nPixelWidth = 20     ' 單個字符位圖的寬度
Const nPixelHeight = 20       ' 單個字符位圖的高度
Const nColorHue = 220      ' 顯示驗證碼的色調(-1表示隨機色調, -2表示灰度色調)
Const nAngleRandom = 0         ' 角度隨機量
Const nLengthRandom = 0        ' 長度隨機量(百分比)

希望對你有用!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵武市| 馆陶县| 霍山县| 封丘县| 泰来县| 隆林| 罗定市| 永仁县| 二连浩特市| 南安市| 迁西县| 新郑市| 延川县| 商都县| 长宁区| 昌黎县| 吉隆县| 临西县| 高邑县| 库尔勒市| 含山县| 柞水县| 许昌市| 泽州县| 汕头市| 偏关县| 洞头县| 宜丰县| 高唐县| 紫阳县| 准格尔旗| 靖边县| 文昌市| 乌海市| 临夏县| 哈巴河县| 潢川县| 大名县| 闻喜县| 故城县| 诸暨市|