许可证lisence校验和代码混淆的实现原理

许可证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

当然也可以在镜像中启动,编写镜像文件

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐

  • 人工智能-类人机器的前瞻性与发展趋势

    我们现在讨论人工智能(AI)能对生命科学产生革命性影响,是因为当今世界无论是国家,民族,社会意识形态以及文明与文化全都是以科学技术为基础,科技巨量投资,竞争非常激烈。基础学科难度高…

    2022年6月15日
  • APP信息服务管理新规来了 今年8月1日起施行

    原标题:国家网信办修订《移动互联网应用程序信息服务管理规定》发布施行 国家互联网信息办公室6月14日发布新修订的《移动互联网应用程序信息服务管理规定》(以下简称新《规定》)。新《规…

    2022年6月20日
  • 2022年买电视!!!MiniLED和OLED到底该选啥?

    要了解这两个电视如何选择,小编先带大家看看MiniLED和OLED的区别。 一、Mini LED和OLED在显示原理上,有着本质的区别。 1.Mini LED仍然是基于LCD的显示…

    2022年7月27日
  • Android开发一个简单实用的闹铃APP

    一个简单的闹钟 生活中我们会常常遇到需要闹钟提醒;不管是起床还是生活中的事件提醒。 那作为Android开发如何自己开发一个闹钟功能呢,是不是觉得很酷呢?接下来我们就实战一个闹钟。…

    2022年6月25日
  • 浏览器本地离线数据库IndexedDB封装

    let _IDBDatabase;//数据库对象/** * 初始化或升级数据库(动态对比增删改上一版本对象仓库和索引) * * @param {String} dbName 数据库…

    2022年6月14日
  • 谢娜首晒自己与仨女儿合影,感恩母亲的付出,小咘芽肉嘟嘟超萌

    愿我如星君如月,夜夜流光相皎洁。——范成大 爱情是人世间最美好的一个词汇,过程轰轰烈烈让人心驰神往,从爱情中得到的不仅是生命的成长,还可以拥有一个携手一生的恋人,彼此陪伴过程生活不…

    2022年5月15日
  • 女生必学的化妆底层逻辑 – 普通女孩也能快速变美

    Hi~美少女们大家好呀~ 还记得上大学的时候,宿舍几个姐妹约好一起出去逛街,每个人都想着出门前好好打扮一下,有一个姐妹每次都能惊艳到我! 素颜平平无奇的她化完妆真的就像变了一个人,…

    2022年7月28日
  • 梦到底是什么,是否带有暗示或者预测未来?

    大多数人都有过做梦的经历,少有人不做梦的。有时候我们一晚上做了好多梦,但醒来时,当时还记得一点,可没几分钟就完全忘记了,不过也有令人难忘的。 小时候就莫名其妙梦见个绿头鬼,披头散发…

    2022年7月15日
  • 优秀软件开发工程师必须具备的10个优良习惯

    软件开发技术从诞生以来发展的速度是很快的,就算是没有参与过#软件开发# 的一些人也是有所体会的。起码身边的科技产品是一直在不断地变幻的。 如何我们能要众多软件开发工程师中脱颖而出,…

    2022年6月30日
  • 做回楚门,逃离楚门的世界

    一个人从小会被周围的世界灌输各种观念。父母,学校,国家,他们会怀着各种目的灌输自己的思想,当然是以为你好的名义。 电影中楚门长大后慢慢发现,自己的世界是被人设计好了的,他只是供电视…

    2022年9月20日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息