客户端离线鉴权
设计的一个项目需要客户端离线使用的同时控制使用时间,如果获取本地时间判断容易被欺骗,用带时钟的加密狗无法提前结束或者追加时长,就想到了以下方法
1、提前在程序中保存:ID、本机密码、验证码接口,其中本机密码是不可让用户知道的。
2、程序运行时随机生成一串数字,将ID与随机数拼接在接口后作为GET参数提交,生成二维码显示。
3、用户扫码打开网页,服务器根据ID判断用户身份,获取对应密码,然后按 md5(ID + 9位数 + 密码)来计算MD5,取前四位显示。
4、用户输入软件,软件按相同方式计算MD5取前四位比对判断是否正确。
程序使用加密狗加密后再加壳,应该可以增加反编译的难度,不过也只是防君子不防小人。
就实现效果和使用便捷性来说还行,一般大家手机都是有网络的。
贴上我用C#写的部分代码
首页界面