java实现建权授权_JAVA项目实现授权 (一)-Go语言中文社区

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

请注意:这个只是个比较low的实现,如果那种考虑用户懂代码,又拿到源码的,别看这个了还是。对我们来说,拿到源码,没有什么破不了的,只不过是时间问题,对不?

如果项目部署到服务器上,需要当前服务器授权后才能正常访问,也就是说,控制项目的部署位置。当项目部署完成,进行访问时,忽然弹出了下边的小窗口。

6db452dbfae3a6a6f34d3d0fa0fc9281.png

如果没有授权码,就算部署到这个服务器上,也没法用,但实现这个功能不是很复杂。

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

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

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

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

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

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

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

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

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

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

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

c2c475fb7754ce157659477f6296fffd.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值