首发于:用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.加大破解者损失,暗桩里能够格式化硬盘破坏对方的业务数据文件啥的让对方不敢随便用盗版
核心源码