当前位置:   article > 正文

JAVA项目实现授权 (一)_java 授权码实现

java 授权码实现
JAVA项目实现授权部署 (一)

  请注意:这个只是个比较low的实现,如果那种考虑用户懂代码,又拿到源码的,别看这个了还是。对我们来说,拿到源码,没有什么破不了的,只不过是时间问题,对不?
   如果项目部署到服务器上,需要当前服务器授权后才能正常访问,也就是说,控制项目的部署位置。当项目部署完成,进行访问时,忽然弹出了下边的小窗口。
在这里插入图片描述
   如果没有授权码,就算部署到这个服务器上,也没法用,但实现这个功能不是很复杂。

可以由如下步骤的方法来简单实现:

1、 代码里,通过系统名称 + 物理地址+硬盘序号+当前时间等等一些能区别服务器的参数作为源,来加密成一个申请码,也就是上图中的那串,在项目初次访问会因为验证授权失败返回这个申请码。

加密成
系统名称 + 物理地址+硬盘序号+当前时间
申请码

2、用户把这个申请码发给授权人,一般我们会做成一个授权软件,在该授权软件里,将这个申请码,通过相同的方法,反解析成系统名称 + 物理地址+硬盘序号+授权时间,然后再将得到的系统名称 + 物理地址+硬盘序号+当前时间 ,拼上授权截止时间 ,最后,再加密成一个授权码。

反解析成
加上授权截止时间加密成
申请码
系统名称 + 物理地址+硬盘序号+当前时间
授权码

3、这里注意一下,上边的加密成申请码和授权码,这里用的都是同一种加密方式,是可逆的加密,两者的不同仅仅在于多了个截止时间,当然加密方法里还额外加了盐,就算你知道加密方法,也不知道盐(拿到源码那没办法,你赢了),用户拿到授权码后,填到上图的授权码位置,保存后,服务器会将这个授权码保存起来,或者保存到一个固定文件里,或者保存到数据库里。

保存到
授权码
服务器指定位置授权文件

4、当用户再次访问系统时,会去保存授权码的地方,拿到授权码,并反解析成系统名称 + 物理地址+硬盘序号+授权时间+截止时间,这里叫baseCode,然后,将实际的服务器系统名称 + 物理地址+硬盘序号 ,这里叫loginCode ,通过对baseCodeloginCode 的相互比较,另外加上截止时间 是否过期,来判断是否能验证成功,如果成功,才能通过验证。

Created with Raphaël 2.2.0 登录访问 解析授权码 获取本机信息 比较验证? 访问成功 yes no

5、 这里也能看出来,即使,能拿到其他授权机器上的授权码也没用,因为相互之间的物理地址、硬盘序号 是不一样的,除了改代码,没法通过验证。

再配一张详细的步骤图方便大家理解:

在这里插入图片描述

   以上是实现的说明,下一篇我会贴出具体的代码,具体请看这个链接 JAVA项目实现授权 (二)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/663856
推荐阅读
相关标签
  

闽ICP备14008679号