關於滑動驗證碼

2021-08-18 20:17:55 字數 2711 閱讀 9995

首先前台呼叫後台介面,獲取y座標,及裁剪的小圖,混淆拼接的。x座標儲存到資料庫。

/// /// 返回驗證碼json

jobject["y"] = _positiony;//y座標

jobject["array"] = string.join(",", array);//

jobject["imgx"] = _imgwidth;//寬

jobject["imgy"] = _imgheight;//高

jobject["small"] = ls_small;//裁剪的小圖

jobject["normal"] = ls_confusion;//裁剪小圖後的原圖

jobject["id"] = id;

/* errcode: 狀態值 成功為0

* y:裁剪y軸位置

* small:小圖字串

* normal:剪下小圖後的原圖並按無序陣列重新排列後的圖

* array:無序陣列

* imgx:原圖寬

* imgy:原圖高

*/return jobject.tostring();

}/// /// 獲取裁剪的小圖

///

/// 原圖

/// 剪下寬度

/// 剪下高度

/// x軸剪下位置

/// y軸剪下位置

private bitmap cutimage(bitmap sfrombmp, int cutwidth, int cutheight, int x, int y)

/// /// 獲取裁剪小圖後的原圖

///

/// 原圖

/// 剪下寬度

/// 剪下高度

/// x軸剪下位置

/// y軸剪下位置

public bitmap getnewbitmap(bitmap sfrombmp, int cutwidth, int cutheight, int spacex, int spacey)

/// /// 獲取混淆拼接的

///

/// 無序陣列

/// 剪下小圖後的原圖

public bitmap confusionimage(int a, bitmap cutbmp)

bitmap img = new bitmap(_imgwidth, _imgheight); //建立一張空白

graphics g = graphics.fromimage(img); //從空白建立乙個graphics

for (int i = 0; i < 20; i++)

g.dispose();

return img;

}

然後前台返回x座標,滑動過程特性,來判斷是否成功。

/// /// 校驗前端是否通過驗證

//錯誤

if (math.abs(li_old_point - li_now_point) > _deviationpx)

catch

setsql.adderrorcount(id);//增加錯誤次數

if (li_count > _maxerrornum)

"); return;

}//返回錯誤次數

write(context, ""); return;

}if (slidefeature(datelist))

//校驗成功 返回正確座標

"ischeck"] = "ok";

"code_errornum"] = null;

"code"] = null;

setsql.delete(id,"true");

write(context, "");

}

本專案基於github原始碼修改

滑動驗證碼

通過檢視網頁可以發現滑動驗證碼的由兩張組成。需要注意的是在檢視是可以發現每張是由52張小組合而成。而每一張小其實都是一樣的,通過偏移拼接出了正常的。background images driver.find elements by xpath div path location x int re.f...

滑動驗證碼

自己研究 jquery拖拽滑動驗證碼外掛程式 slideunlock.js 原理 別人說 響應時間,拖拽速度,時間,位置,軌跡,重試次數等。這些因素能夠構成乙個取樣結果或者辨識特性。只獲取到滑動時間,滑動的長度。效果 html頁面 拖動滑塊驗證 css樣式 slider slider bg labe...

selenium滑動驗證碼

最好是在測試的時候遮蔽掉滑動驗證。滑動驗證碼的驗證,可用selneium的click and hold 和move by offset來實現,其中click and hold target perform 模擬滑鼠左鍵按下,抓住滑動塊,move by offset來實現滑動塊的相對位移 action...