首發於:用http.get()簡單實現網絡驗證防止客戶不給尾款_電腦計算機編程入門教程自學javascript
http://jianma123.com/viewthread.aardio?threadid=428html
給軟件加上網絡驗證是常常須要用到的實用功能,下面簡單示範下怎麼用http.get()簡單實現網絡驗證,用來防止客戶不給尾款等.java
適用場景算法
1.集團公司給大量員工用的內部軟件,防止外傳編程
2.給客戶定製的軟件在試用版中加上網絡驗證,防止不給尾款網絡
工做過程app
先讓用戶申請賬號,管理員在後臺審覈添加賬號,每次登錄前驗證下機器碼,返回通行碼供本地驗證.ui
申請開通賬號按鈕:用http.get()方式把"用戶名/密碼/機器碼"提交給http服務端保存到申請表,管理員審覈時一條條把它複製到通行表url
登錄按鈕:用http.get()方式把"用戶名/密碼/機器碼/時間戳"提交,並本地根據這幾個參數算法來生成正確的通行碼spa
http服務端收到後根據這幾個參數算法來生成正確的通行碼響應輸出,客戶端獲取到後用它來與本地生成的通行碼對比,若是正確就提示登錄成功
優勢
能夠驗證機器碼;
能夠驗證賬號;
能夠由於有時間戳的參與而每次點登錄按鈕都是返回不一樣的通行碼,破解者若是不知道驗證原理抓包也沒法用本地host跳轉的方式來破解,只能用od修改軟件邏輯判斷,增長了破解難度.
缺點
用od修改軟件邏輯判斷能夠輕易破解(通常用戶或客戶不具有這種能力,若是找人破解也須要付出必定的成本)
防破解
1.能夠在驗證到通行碼不對時啓動時鐘,電子取證,而後隨機秒數後自退
2.加多種暗樁,防止直接修改判斷邏輯就突破防線
3.加大破解者損失,暗樁裏能夠格式化硬盤破壞對方的業務數據文件啥的讓對方不敢隨便用盜版
核心源碼