首先前台呼叫後台介面,獲取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...