JAVA项目实现授权 (一)

版权声明:重在参与,贵在分享 https://blog.csdn.net/wohaqiyi/article/details/82986646

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

   如果项目部署到服务器上,需要当前服务器授权后才能正常访问,也就是说,控制项目的部署位置。当项目部署完成,进行访问时,忽然弹出了下边的小窗口。
在这里插入图片描述
   如果没有授权码,就算部署到这个服务器上,也没法用,但实现这个功能不是很复杂。

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

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

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

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

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

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

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

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

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

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

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

在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/wohaqiyi/article/details/82986646
今日推荐