赞
踩
请注意:这个只是个比较low的实现,如果那种考虑用户懂代码,又拿到源码的,别看这个了还是。对我们来说,拿到源码,没有什么破不了的,只不过是时间问题,对不?
如果项目部署到服务器上,需要当前服务器授权后才能正常访问,也就是说,控制项目的部署位置。当项目部署完成,进行访问时,忽然弹出了下边的小窗口。
如果没有授权码,就算部署到这个服务器上,也没法用,但实现这个功能不是很复杂。
可以由如下步骤的方法来简单实现:
1、 代码里,通过系统名称 + 物理地址+硬盘序号+当前时间
等等一些能区别服务器的参数作为源,来加密成一个申请码,也就是上图中的那串,在项目初次访问会因为验证授权失败返回这个申请码。
2、用户把这个申请码发给授权人,一般我们会做成一个授权软件,在该授权软件里,将这个申请码,通过相同的方法,反解析成系统名称 + 物理地址+硬盘序号+授权时间
,然后再将得到的系统名称 + 物理地址+硬盘序号+当前时间
,拼上授权截止时间
,最后,再加密成一个授权码。
3、这里注意一下,上边的加密成申请码和授权码,这里用的都是同一种加密方式,是可逆的加密,两者的不同仅仅在于多了个截止时间,当然加密方法里还额外加了盐,就算你知道加密方法,也不知道盐(拿到源码那没办法,你赢了),用户拿到授权码后,填到上图的授权码位置,保存后,服务器会将这个授权码保存起来,或者保存到一个固定文件里,或者保存到数据库里。
4、当用户再次访问系统时,会去保存授权码的地方,拿到授权码,并反解析成系统名称 + 物理地址+硬盘序号+授权时间+截止时间
,这里叫baseCode
,然后,将实际的服务器系统名称 + 物理地址+硬盘序号
,这里叫loginCode
,通过对baseCode
和loginCode
的相互比较,另外加上截止时间
是否过期,来判断是否能验证成功,如果成功,才能通过验证。
5、 这里也能看出来,即使,能拿到其他授权机器上的授权码也没用,因为相互之间的物理地址、硬盘序号
是不一样的,除了改代码,没法通过验证。
以上是实现的说明,下一篇我会贴出具体的代码,具体请看这个链接 JAVA项目实现授权 (二)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。