搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
基于Springboot的智能家居系统
2
python使用scipy.optimize.least_squares进行最小二乘优化_least square python optimal
3
05-kafka性能调优实战_kafka 调优案例
4
idea报错 “cannot access xxx(实体)“ 的解决办法_cannot access enum
5
Git 使用之.gitignore文件
6
深度学习框架【CNTK】的安装
7
基于SQL数据库的大模型RAG实现_大模型 sql
8
SpringBoot之单元测试_springboot junit不测试filter
9
软件测试必会技能之编写测试用例_提测前测试用例需要给到研发
10
QML学习十三:QML与C++交互之C++端发送信号绑定QML端_qml接收c++信号
当前位置:
article
> 正文
Java License 实现方案_java license 有效期 实现
作者:很楠不爱3 | 2024-06-02 18:43:31
赞
踩
java license 有效期 实现
功能目标
本功能主要是为了防止软件被非正规途径获取之后,被肆意传播或无限制的使用。可限制用户的使用周期、使用主机数、使用用户数。
业务流程
功能设计
license功能配置
在配置文件中加入license的如下配置
license.check.date,授权码的时间范围,值为月份
0,不校验mac地址。即系统只需要输入一次授权码即可永久使用。
00-FF-77-BB-9F-55,部署主机的实际mac地址,代表license授权码只可以在这个mac地址的主机上使用。
windows可使用ipconfig命令获取。
linux可使用ifconfig命令获取。
license.check.mac,是否要校验主机的mac地址
0,不校验mac地址。即系统可以在任意主机上使用。
1,当前的license授权码可以使用1个月。
12,当前的license授权码可以使用12个月。
其他数量以此类推
license.check.users,允许使用的用户数量。
0,不校验用户数量。用户数量指的是启用状态的用户数。
500,如果授权码中的用户数量大于这个数则无法使用。
其他数量以此类推。
license.code,授权码。如果授权码为空则系统将无法使用。
license.keyt,密钥,用于加密解密时的关键信息。
如果为空或者系统无法正确读取时,将使用默认密钥purvar1234567890
由于使用了AES128加密,密钥至少16位
License校验事件
如下几个事件任选1个或多个进行校验。对于需要登录的系统建议使用第一种。
在用户访问登录页面时进行校验,如果校验失败提醒用户联系供应商获取授权码。
在系统启动并读取完配置信息后,如果校验失败控制台打印获取授权码失败.
License校验业务规则
读取系统中已配置的授权码。如果没有读取到授权码信息则直接报错让用户联系供应商获取授权码。
读取到授权码之后。首先使用密钥和AES128算法进行解密。
对解密后的明文使用如下格式解析授权码中的信息
授权码中包含很多段信息,使用“_”作为分割符。
授权码第一段为日期。日期格式为yyyyMMddHHmmss
授权码第二段为mac地址。
授权码第三段为用户数。
读取系统中的授权码配置,进行如下校验。
日期校验
读取license.check.date配置项的值。
如果配置项等于“0”且授权码中的值也为“0”,则校验通过。
如果配置项大于“0”且授权码中的值为“0”,则直接报错:系统的授权码已经过期请联系供应商获取新的授权码。
如果配置项大于“0”且授权码中的值也大于“0”。校验授权码的日期和当前日期是否超过允许的月份数。如果超过则报上述错误。
mac地址校验
读取license.check.mac配置项的值。
如果配置项等于“0”且授权码中的值也为“0”,则校验通过。
如果配置项大于“0”且授权码中的值为“0”,则直接报错:系统的授权码不支持在当前物理地址上使用请联系供应商获取新的授权码。
如果配置项大于“0”且授权码中的日期也大于“0”。校验授权码中的值和配置值是否相等。如果不等则报上述错误。
用户数校验
读取license.check.users配置项的值。
如果配置项等于“0”且授权码中的值也为“0”,则校验通过。
如果配置项大于“0”且授权码中的值为“0”,则直接报错:系统的授权码不支持当前的用户数量请联系供应商获取新的授权码。
如果配置项大于“0”且授权码中的值也大于“0”。则读取当前系统启用状态的用户数量。
如果用户数量大于配置项中的值则报上述错误。
以上任意校验发生错误都不允许用户继续使用系统。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/663900
推荐阅读
article
【开源】
加油站
管理系统
JAVA
+
Vue
.
js
+
SpringBoot
+MySQL...
Vue
.
js
+
SpringBoot
前后端分离新手入门项目《
加油站
管理系统
》,包括论坛模块、
加油站
模块、汽油模块、加油模块...
赞
踩
article
【
送书
福利
第七期
】
你好
!
Java
(文末
送书
)...
本书以轻松幽默的语言,从零开始介绍如何学习
Java
语言。书名来源于编程语言中最经典的Hello World程序,寓意带您...
赞
踩
article
Android
PackageManagerService
流程
详细分析
(一)之
启动
_
android
...
Android
系统在
启动
的过程中,会
启动
一个应用程序管理服务
PackageManagerService
,这个服务负责扫描...
赞
踩
article
java
-
php
-
python
-
ssm
学习资源下载
管理
计算机
毕业设计
...
springcloud基于springcloud的药品销售系统。springboot基于springboot的音乐网站管...
赞
踩
article
LeetCode
-剑指
Offer
06 - 从尾
到头
打印
链表
-
java
- 细喔...
那么,我们可不可以 在逆序的过程中,计算
链表
的节点个数,从而确定我们需要创建的数组的容量大小。到时候逆序成功,直接for...
赞
踩
article
(C卷
,
100
分)- 5
键
键
盘(
Java
& JS &
Python
)...
(C卷
,
100
分)- 5
键
键
盘(
Java
& JS &
Python
)(C卷
,
100
分)- 5
键
键
盘(
Java
& JS...
赞
踩
article
Java+Selenium+
Chrome
实现后台加载
Echarts
并返回
base64
_
java
ch...
Java+Selenium+
Chrome
实现后台加载
Echarts
并返回
base64
使用场景:在
java
后台加载Echa...
赞
踩
article
HDU 1044 Collect
More
Jewels
【BFS+DFS+建立距离图】_collec...
Collect
More
Jewels
Time Limit: 2000/1000 MS (Java/Others) Me...
赞
踩
article
Sumo
学习
日记 -
day1
从
traci
开始_
sumo
java
...
sumo
最详细教程:通过官方文档带你
学习
sumo
_
sumo
java
sumo
java
...
赞
踩
article
【Py/
Java
/C++三种语言
OD
独家
20
24D
卷真题】
20
天拿下
华为
OD
笔试之【
DFS
/
BFS
】...
现给你一棵树,请计算出
最
富裕
的
小家庭
的
财富和。_寻找
最
富裕
的
小家庭
寻找
最
富裕
的
小家庭
...
赞
踩
article
华为
OD机试C卷
--
绘图
机器
(
Java
& JS &
Python
& C)...
绘图
机器
的
绘图
笔初始位置在原点(0,0)
机器
启动后按照以下规则来进行绘制直线。1. 尝试沿着横线坐标正向绘制直线直到给定...
赞
踩
article
java
+jsp+
mysql
实现学习
资源
推荐
系统
LearningResourceRS
个性化
推荐
系统
...
java
+jsp+
mysql
实现学习
资源
推荐
系统
LearningResourceRS
一、项目简介一、开发工具Myecli...
赞
踩
article
华为
OD机试C卷
--
多段线
数据压缩
(
Java
& JS &
Python
& C)...
为简化处理,多线段的走向只能是水平、竖直、斜向45度。上图中的多线段可以用下面的坐标串表示:(2,8),(3,7),(3...
赞
踩
article
237.【
华为
OD机试】
多段
线
数据压缩
(模拟-
Java
&
Python
&
C++
&JS实现)_
多段
线
数据...
【
华为
OD机试】
多段
线
数据压缩
(模拟-
Java
&
Python
&
C++
&JS实现)为简化处理,
多段
线
的走向只能是水平、竖直...
赞
踩
article
华为
OD机试 - 多段线
数据压缩
(
Java
& JS &
Python
& C &
C++
)_多
线段
...
华为
OD机试 - 多段线
数据压缩
(
Java
& JS &
Python
& C &
C++
),实现:逻辑分析_多
线段
数据...
赞
踩
article
华为
OD机试统一考试D卷C卷 -
多段
线
数据压缩
(C++
Java
Java
Script Pytho...
下图中,每个方块代表一个像素,每个像素用其行号和列号表示。为简化处理,
多段
线的走向只能是水平、竖直、斜向45度。_
华为
o...
赞
踩
article
华为OD机试C卷 -
灰度
图存储(
Java
& JS &
Python
& C & C++)_
org
...
黑白图像常采用
灰度
图的方式存储,即图像的每个像素填充一个灰色阶段值,256阶灰图是一个灰阶值取值范围为 0~255 的灰...
赞
踩
article
华为
OD机试-多段线
数据压缩
(
Java
&
Python
&Js)
100%
通过率_多阶段
数据压缩
pyth...
华为
od机考题目,
100%
通过率_多阶段
数据压缩
python
华为
多阶段
数据压缩
python
华为
...
赞
踩
article
华为OD机试C卷--
灰度
图
存储
(
Java
& JS &
Python
& C)...
黑白
图
像常采用
灰度
图
的方式
存储
,即
图
像的每个像素填充一个灰色阶段值,256阶灰
图
是一个灰阶值取值范围为 0~255 的灰...
赞
踩
article
华为OD机试C卷--一种
字符串
压缩
表示
的
解压
(
Java
& JS &
Python
)...
有一种简易
压缩
算法:针对全部由小写英文字母组成
的
字符串
,将其中连续超过两个相同字母
的
部分
压缩
为连续个数加该字母,其他部分...
赞
踩
相关标签
spring boot
java
vue.js
算法
开发语言
编程著作
android
framework
pkms
包管理服务
启动
php
学习
leetcode
链表
python
c语言
selenium
echarts
ACM
bfs
交通物流
大数据
动态规划