首发于:用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学

http://jianma123.com/viewthread.aardio?threadid=428

给软件加上网络验证是经常需要用到的实用功能,下面简单示范下怎么用http.get()简单实现网络验证,用来防止客户不给尾款等.

适用场景

1.集团公司给大量员工用的内部软件,防止外传

2.给客户定制的软件在试用版中加上网络验证,防止不给尾款

工作过程

先让用户申请帐号,管理员在后台审核添加帐号,每次登陆前验证下机器码,返回通行码供本地验证.

申请开通帐号按钮:用http.get()方式把"用户名/密码/机器码"提交给http服务端保存到申请表,管理员审核时一条条把它复制到通行表

登陆按钮:用http.get()方式把"用户名/密码/机器码/时间戳"提交,并本地根据这几个参数算法来生成正确的通行码

http服务端收到后根据这几个参数算法来生成正确的通行码响应输出,客户端获取到后用它来与本地生成的通行码对比,如果正确就提示登陆成功

优点

可以验证机器码;

可以验证帐号;

可以因为有时间戳的参与而每次点登陆按钮都是返回不同的通行码,破解者如果不知道验证原理抓包也无法用本地host跳转的方式来破解,只能用od修改软件逻辑判断,增加了破解难度.

缺点

用od修改软件逻辑判断可以轻易破解(一般用户或客户不具备这种能力,如果找人破解也需要付出一定的成本)

防破解

1.可以在验证到通行码不对时启动时钟,电子取证,然后随机秒数后自退

2.加多种暗桩,防止直接修改判断逻辑就突破防线

3.加大破解者损失,暗桩里可以格式化硬盘破坏对方的业务数据文件啥的让对方不敢随便用盗版

核心源码

winform.button.oncommand = function(id,event){

    //申请开通帐号
var name = winform.editName.text;
var pwd = winform.editPwd.text;
var mcode = winform.editMcode.text; var html,errInfo,errCode = http.get("http://jianma123.com:55555/?ac=reg&name="+inet.url.encode(name)+"&pwd="+pwd+"&mcode="+mcode)
//console.varDump(html,errInfo,errCode) } winform.button2.oncommand = function(id,event){ //登陆
var name = winform.editName.text;
var pwd = winform.editPwd.text;
var mcode = winform.editMcode.text;
var tick = time().getMilliTime(); 正确的通行码 = 生成通行码(mcode,tick)
console.log("正确的通行码:",正确的通行码) var htmlStr,errInfo,errCode = http.get("http://jianma123.com:55555/?ac=login&name="+name+"&pwd="+pwd+"&mcode="+mcode+"&tick="+tick)
console.varDump(htmlStr,errInfo,errCode) if(htmlStr==正确的通行码){
winform.msgbox("允许通行")
}else {
winform.msgbox("不允许通行,请联系管理员")
} }

用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学的更多相关文章

  1. 【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

    C语言/C++编程学习:一个简单的实例 让我们来看一个简单的C语言程序.从下面的程序可以看出编写C语言程序的一些基本特征.   如果你能知道该程序将会在显示器上显示一些内容,那说明你还是知道一些的! ...

  2. Python Twisted网络编程框架与异步编程入门教程

    原作出处:twisted-intro-cn 作者:Dave 译者:杨晓伟 luocheng likebeta 转载声明:版权归原作出处所有,转载只为让更多人看到这部优秀作品合集,如果侵权,请留言告知 ...

  3. GAN网络从入门教程(一)之GAN网络介绍

    GAN网络从入门教程(一)之GAN网络介绍 稍微的开一个新坑,同样也是入门教程(因此教程的内容不会是从入门到精通,而是从入门到入土).主要是为了完成数据挖掘的课程设计,然后就把挖掘榔头挖到了GAN网络 ...

  4. python3+django2 开发易语言网络验证(上)

    创作背景: 在某论坛中下载到一套php开发易语言网络验证的教程,照着看下来,花了两天的时间,结果发现教程里开发的网络验证,以及随着教程一起给学员的源码,都存在着根本用不了的bug!我想要看看能不能在原 ...

  5. python3+django2 开发易语言网络验证(中)

    第四步:网络验证的逻辑开发 1.将model注册到adminx.py中 1.在apps/yanzheng目录下新建admin.py 文件,添加代码: import xadmin from xadmin ...

  6. Xamarin.Android之封装个简单的网络请求类

    一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...

  7. jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)

    最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...

  8. shiro 简单的身份验证 案例

    Apache Shiro是Java的一个安全框架,Shiro可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等. 简单的身份验证 项目目录: 首先,在shiro.ini里配置了用户名和 ...

  9. jQuery结合Ajax实现简单的前端验证和服务端查询

    上篇文章写了简单的前端验证由传统的JavaScript转向流畅的jQuery滑动验证,现在拓展一下,使用Ajax实现用户体验比较好的异步查询,同样还是从建立一个简单的表单开始 <form nam ...

随机推荐

  1. autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示

    autocomplete 属性规定输入字段是否应该启用自动完成功能. 自动完成允许浏览器预测对字段的输入.当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项. 注释:aut ...

  2. 【Android】16.0 UI开发(七)——列表控件RecyclerView的点击事件实现

    1.0 在各布局的基础上,修改ProvinceAdapter.java的代码: package com.example.recyclerviewtest; import android.support ...

  3. Web前端面试指导(十三):css样式的优先级是怎么样的?

    题目点评 CSS样式的优先级规则给人的感觉总是摸不透,更不用说怎么去表达了,在网络上流传着很多版本,描述的都很复杂也不全面,看了之后还是不满意.我来给大家介绍一个比较系统.全面有比较容易记住的规则吧! ...

  4. 织梦后台添加友情链接的方法(flink标签)

    标记名称:flink[标签简介][功能说明]:用于获取友情链接,其对应后台文件为"includetaglibflink.lib.php".[适用范围]:全局标记,适用V55,V56 ...

  5. C语言实现整数数组的逆置算法

    读入100个整数到一个数组中,写出实现该数组进行逆置的算法. 方法一: 假设100个整数读入到数组a中,算法f1的思想是分别从数组两端依次将对应数进行交换,即a[i]与a[100 - i - 1]进行 ...

  6. 4 关于word2vec的skip-gram模型使用负例采样nce_loss损失函数的源码剖析

    tf.nn.nce_loss是word2vec的skip-gram模型的负例采样方式的函数,下面分析其源代码. 1 上下文代码 loss = tf.reduce_mean( tf.nn.nce_los ...

  7. java、C语言实现数组模拟栈

    java: public class ArrayStack { private int[] data; private int top; private int size; public ArrayS ...

  8. SVNKit学习——wiki+简介(二)

    这篇文章是参考SVNKit官网在wiki的文档,做了个人的理解~ 首先抛出一个疑问,Subversion是做什么的,SVNKit又是用来干什么的? 相信一般工作过的同学都用过或了解过svn,不了解的同 ...

  9. MQ测试

    2015年8月13日23:14:52 测试RabbitMq ====================== 千兆局域网:send ≍10000/s  receive ≍7000/s 百兆局域网:send ...

  10. FireFox浏览器Flash&视频下载工具推荐

    介绍 两款扩展组件:Flash and Video Download & Flash Video Downloader 一起使用,各有优缺点. Flash and Video Download ...