许可证lisence校验和代码混淆的实现原理
源码https://gitee.com/pingfanrenbiji/lic-auth 利用jdk keytool工具制作证书
利用jdk keytool工具生成证书 keytool -genkeypair -keysize 1024 -validity 3650 -alias "秘钥别名" -keystore "秘钥库名称.keystore" -storepass "秘钥库口令" -keypass "秘钥口令" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" 注意:所有口令必须包含字母数字 eg: keytool -genkeypair -keysize 1024 -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "deepglint_store_pwd123" -keypass "deepglint_key_pwd123" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"
生成了私钥文件 privateKeys.keystore
利用jdk keytool工具导出证书文件 keytool -exportcert -alias "秘钥别名" -keystore "秘钥库名称.keystore" -storepass "秘钥库口令" -file "证书名称.cer" eg: keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "deepglint_store_pwd123" -file "certfile.cer"
生成证书
利用jdk keytool工具将证书文件导入到证书库中 keytool -import -alias "别名" -file "证书名称.cer" -keystore "秘钥库名称.keystore" -storepass "秘钥库口令" eg: keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "deepglint_store_pwd123"
将证书文件导入证书库 生成lisence
启动lisence-server服务
获取服务器信息 http://127.0.0.1:10000/license/getServerInfos
有MAC地址、IP地址、CPU序列号、主板序列号
生成证书 http://127.0.0.1:10000/license/generateLicense
安装lisence
配置证书和公钥文件
启动服务安装证书
安装的过程:读取证书中的服务器信息,然后读取真实的服务器信息,比对是否一致,并且验证是否在有效期内,若一致则安装成功,若不一致,则安装失败。
信息比对的过程在这里
lisence校验
证书安装成功之后,访问服务中的接口,浏览器访问http://127.0.0.1:10001//auth/api/1.0/getUserInfo
在拦截器中添加校验的逻辑,校验的逻辑和证书安装的时候校验过程是一样的。
通用的校验类LicenseVerify,其子类CustomLicenseManager中实现自定义的校验逻辑,比如服务器硬件信息校验,比如业务校验: 在线用户数校验
父类中封装了共有的校验逻辑,比如有效期校验
在拦截器中做校验即校验通过,才可访问其中的服务。 将上面2个服务部署到k8s中
编写server的镜像文件
把jar包和密钥证书加载进镜像
生成镜像 docker build -t 127.0.0.1:5000/lic-auth/lic-auth-server:1.0
上传到景象仓库 docker push 127.0.0.1:5000/lic-auth/lic-auth-server:1.0
编写k8s pod文件
编写k8s svc文件
启动服务 kubectl apply -f .
查看服务启动情况
查看证书文件
查看server服务的端口
生成证书
将生成好的证书复制到宿主机上 kubectl cp lic-auth-server-6dcd66c7d-vq5qb:license.lic -n xibaoxiao-chuangxin ./license.lic
将该证书文件放入待安装的服务中
将证书和公钥文件载入镜像
并指定访问路径
编译镜像 docker build -t 127.0.0.1:5000/lic-auth/lic-auth-client:1.0 .
pod yaml文件
svc yaml文件
启动服务 kubectl apply -f
证书安装成功
查看访问端口
http://127.0.0.1:30011//auth/api/1.0/getUserInfo
代码混淆
源码 https://gitee.com/roseboy/classfinal.git 生成该插件jar包放入本地仓库或私服中
`待混淆的项目的pom文件中引入该插件包
classfinal.version 使用刚刚打包定义的版本号 password 加密密码 packages 哪个package下面的代码做混淆 cfgfiles 哪个配置文件做混淆 debug 混淆的过程 debug模式 可以看到更多插件包中的日志信息 excludes 哪个package包下面的代码不做混淆 libjars jar/war lib目录下的哪些jar包不做混淆
打包结果之后,就可以看到混淆之后的jar包了
反编译之后 就可以看到 代码被混淆了
启动jar包 java -javaagent:galaxy-bpm-service.jar="-pwd pingfanrenbiji" galaxy-bpm-service.jar
当然也可以在镜像中启动,编写镜像文件
灵柩首次公开,英国女王踏上最后的伦敦之旅综合英国媒体9月11日报道,巴尔莫勒尔城堡(Balmoralestate)的六名猎场看守人将女王的灵柩抬进等候的灵车,女王的灵柩开始了从在苏格兰的家到爱丁堡的六小时旅程。9月11日
楼兰古国为何一夜之间全城荒废?楼兰古国为何一夜之间全城荒废?古代楼兰国,中国历史上短暂而繁荣的国度,在丝绸之路时期繁荣起来,但由于自然原因而消亡。就像古巴比伦,只有存在遗迹的痕迹,却不曾几何时知道有多辉煌。那么
向东街奇妙之夜在新化县向东街开启新化县委书记李铁雄等一行到活动现场进行考察向东街奇妙之夜活动现场向东街奇妙之夜活动现场红网时刻新闻9月11日讯(通讯员熊博见)2022年9月10日,向东街奇妙之夜在新化县向东街正式
中国唯一没有平原的省份,除了山就是水,难怪是公认的避暑胜地我国地形复杂多样,特别是西部地区,山地比较多,发展受到了一定的限制。在我国就有一个省份,是唯一没有平原的省份,除了山就是水,不过夏季却非常凉爽,是公认的避暑胜地。这个省份就是位于我
白帝城瞿塘峡诗城奉节美不胜收大自然的鬼斧神工骚人墨客的怀思眷念赋予重庆奉节傲人的旅游资本,白帝城瞿塘峡景区是长江三峡的重要组成部分,白帝城更是第六批全国重点文物保护单位。图说瞿塘峡雄奇险峻新民晚报记者唐敏摄白
赋能乡村旅游助力全面振兴2022中国(南昌)乡村旅游投资博览会将于12月9日至11日在南昌市举行,本次博览会主题为乡村旅游投资,数百个县乡政府以及乡旅企业将应邀参展。本届投资博览会以展会形式组织社会资本与
东北人喝酒必上的5个硬菜,道道特色经典,外地人尝过都说好一提起东北,就总能让人想起豪迈洒脱的东北大汉。说起来也是奇妙,在常年寒冷的东北大地上,竟然孕育出了热情似火的东北人民,他们待人坦诚,为人可靠,是最好的朋友,也是最好的家人。而且,东
李易峰之后又有新瓜?疑湾湾爆料其他艺人,过去十几个小时被威胁李易峰实锤后,本以为这次吃瓜事件至此为止。但没想到,网红湾湾再次登上热搜,她称自己过去十几小时受到了威胁,她要把她知道的爆料出来。爆料内容涉及17个人,全文长达1万多字和272张照
游客夜宿黄山之巅登高赏月话团圆黄山迎客松月色侯瑞冬摄中新网黄山9月11日电(刘浩赵美君)9月10日,是传统的中秋佳节,登高望月成了不少游客的第一选择。节日当晚,千名游客夜宿安徽黄山之巅赏月过中秋。在黄山风景区玉
人间仙境美如画,何惧一人闯天涯头条创作挑战赛曾有一位孤身行走于西域戈壁沙漠的友人道不到新疆,你永远不能切身体会到什么叫做辽阔。而我要说不至新疆喀纳斯,你永远无法想象,到底怎样的风景才可称为人间仙境!如果用画卷来
绍兴有个非去不可的景区一间私塾闻名中外,书桌刻字曾成为流行绍兴,是一座古老的城市,历史悠久,文化深厚,自古人才辈出,我们所熟知的民族脊梁如鲁迅秋瑾等皆是在这里生长。木心先生口中的有骨江南指的就是绍兴。从百草园到三味书屋,鲁迅故居几乎是所有