亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                許可證lisence校驗(yàn)和代碼混淆的實(shí)現(xiàn)原理

                許可證lisence校驗(yàn)和代碼混淆的實(shí)現(xiàn)原理

                源碼

                https://gitee.com/pingfanrenbiji/lic-auth

                利用jdk keytool工具制作證書(shū)

                利用jdk keytool工具生成證書(shū)

                keytool -genkeypair -keysize 1024 -validity 3650 -alias “秘鑰別名” -keystore “秘鑰庫(kù)名稱(chēng).keystore” -storepass “秘鑰庫(kù)口令” -keypass “秘鑰口令” -dname “CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN” 注意:所有口令必須包含字母數(shù)字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工具導(dǎo)出證書(shū)文件

                keytool -exportcert -alias “秘鑰別名” -keystore “秘鑰庫(kù)名稱(chēng).keystore” -storepass “秘鑰庫(kù)口令” -file “證書(shū)名稱(chēng).cer”eg: keytool -exportcert -alias “privateKey” -keystore “privateKeys.keystore” -storepass “deepglint_store_pwd123” -file “certfile.cer”

                生成證書(shū)

                利用jdk keytool工具將證書(shū)文件導(dǎo)入到證書(shū)庫(kù)中

                keytool -import -alias “別名” -file “證書(shū)名稱(chēng).cer” -keystore “秘鑰庫(kù)名稱(chēng).keystore” -storepass “秘鑰庫(kù)口令”eg:keytool -import -alias “publicCert” -file “certfile.cer” -keystore “publicCerts.keystore” -storepass “deepglint_store_pwd123”

                將證書(shū)文件導(dǎo)入證書(shū)庫(kù)

                生成lisence

                啟動(dòng)lisence-server服務(wù)

                獲取服務(wù)器信息

                http://127.0.0.1:10000/license/getServerInfos

                有MAC地址、IP地址、CPU序列號(hào)、主板序列號(hào)

                生成證書(shū)

                http://127.0.0.1:10000/license/generateLicense

                安裝lisence

                配置證書(shū)和公鑰文件

                啟動(dòng)服務(wù)安裝證書(shū)

                安裝的過(guò)程:讀取證書(shū)中的服務(wù)器信息,然后讀取真實(shí)的服務(wù)器信息,比對(duì)是否一致,并且驗(yàn)證是否在有效期內(nèi),若一致則安裝成功,若不一致,則安裝失敗。

                信息比對(duì)的過(guò)程在這里

                lisence校驗(yàn)

                證書(shū)安裝成功之后,訪(fǎng)問(wèn)服務(wù)中的接口,瀏覽器訪(fǎng)問(wèn)http://127.0.0.1:10001//auth/api/1.0/getUserInfo

                在攔截器中添加校驗(yàn)的邏輯,校驗(yàn)的邏輯和證書(shū)安裝的時(shí)候校驗(yàn)過(guò)程是一樣的。

                通用的校驗(yàn)類(lèi)LicenseVerify,其子類(lèi)CustomLicenseManager中實(shí)現(xiàn)自定義的校驗(yàn)邏輯,比如服務(wù)器硬件信息校驗(yàn),比如業(yè)務(wù)校驗(yàn): 在線(xiàn)用戶(hù)數(shù)校驗(yàn)

                父類(lèi)中封裝了共有的校驗(yàn)邏輯,比如有效期校驗(yàn)

                在攔截器中做校驗(yàn)即校驗(yàn)通過(guò),才可訪(fǎng)問(wèn)其中的服務(wù)。

                將上面2個(gè)服務(wù)部署到k8s中

                編寫(xiě)server的鏡像文件

                把jar包和密鑰證書(shū)加載進(jìn)鏡像

                生成鏡像

                docker build -t 127.0.0.1:5000/lic-auth/lic-auth-server:1.0

                上傳到景象倉(cāng)庫(kù)

                docker push 127.0.0.1:5000/lic-auth/lic-auth-server:1.0

                編寫(xiě)k8s pod文件

                編寫(xiě)k8s svc文件

                啟動(dòng)服務(wù)

                kubectl apply -f .

                查看服務(wù)啟動(dòng)情況

                查看證書(shū)文件

                查看server服務(wù)的端口

                生成證書(shū)

                將生成好的證書(shū)復(fù)制到宿主機(jī)上

                kubectl cp lic-auth-server-6dcd66c7d-vq5qb:license.lic -n xibaoxiao-chuangxin ./license.lic

                將該證書(shū)文件放入待安裝的服務(wù)中

                將證書(shū)和公鑰文件載入鏡像

                并指定訪(fǎng)問(wèn)路徑

                編譯鏡像

                docker build -t 127.0.0.1:5000/lic-auth/lic-auth-client:1.0 .

                pod yaml文件

                svc yaml文件

                啟動(dòng)服務(wù)

                kubectl apply -f

                證書(shū)安裝成功

                查看訪(fǎng)問(wèn)端口

                http://127.0.0.1:30011//auth/api/1.0/getUserInfo

                代碼混淆

                源碼

                https://gitee.com/roseboy/classfinal.git生成該插件jar包放入本地倉(cāng)庫(kù)或私服中

                `待混淆的項(xiàng)目的pom文件中引入該插件包

                classfinal.version 使用剛剛打包定義的版本號(hào)

                • password 加密密碼
                • packages 哪個(gè)package下面的代碼做混淆
                • cfgfiles 哪個(gè)配置文件做混淆
                • debug 混淆的過(guò)程 debug模式 可以看到更多插件包中的日志信息
                • excludes 哪個(gè)package包下面的代碼不做混淆
                • libjars jar/war lib目錄下的哪些jar包不做混淆

                打包結(jié)果之后,就可以看到混淆之后的jar包了

                反編譯之后 就可以看到 代碼被混淆了

                啟動(dòng)jar包

                java -javaagent:galaxy-bpm-service.jar=’-pwd pingfanrenbiji’ galaxy-bpm-service.jar

                當(dāng)然也可以在鏡像中啟動(dòng),編寫(xiě)鏡像文件

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶(hù)投稿
                上一篇 2022年6月19日 21:19
                下一篇 2022年6月19日 21:20

                相關(guān)推薦

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息