# xjar-encrypt **Repository Path**: liming3/xjar-encrypt ## Basic Information - **Project Name**: xjar-encrypt - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-04 - **Last Updated**: 2021-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 通过xjar加密clsss 内网服务器可能加载不出图片--[原文链接](https://note.youdao.com/ynoteshare1/index.html?id=fd4f1b18d9fa873064d3eed65ac2dbda&type=note) - 地址在这里 https://github.com/core-lib/xjar - 这里只讲插件集成方式,还有一种jar包集成,需要手动加密 [TOC] ## 增加插件仓库 打开pom文件,增加插件仓库 ``` jitpack.io https://jitpack.io ``` - tips:增加后无效,请确认是否配置了私有仓库镜像, 如果配置了,在maven的setting.xml中找到,并修改如下,主要是排除掉jitpack.io仓库的镜像 ``` thunisoft *,!jitpack.io http://maven.r.io/ ``` ## 增加加密插件 ``` com.github.core-lib xjar-maven-plugin 4.0.2 build install ``` - phase指定触发时机,也可以package时触发 - configuration里可以配置加密参数,不建议在这里配置密码,否则打包后pom里会存在密码 - 推荐通过 mvn 命令来指定加密密钥 ## 加密参数列表 | 参数名称 | 命令参数名称 | 参数说明 | 参数类型 | 缺省值 | 示例值 | | :------ | :----------- | :------ | :------ | :----- | :----- | | password | -Dxjar.password | 密码字符串 | String | 必须 | 任意字符串, io.xjar | | algorithm | -Dxjar.algorithm | 加密算法名称 | String | AES/CBC/PKCS5Padding | JDK内置加密算法, 如:AES/CBC/PKCS5Padding 和 DES/CBC/PKCS5Padding | | keySize | -Dxjar.keySize | 密钥长度 | int | 128 | 根据加密算法而定, 56, 128, 256 | | ivSize | -Dxjar.ivSize | 密钥向量长度 | int | 128 | 根据加密算法而定, 128 | | sourceDir | -Dxjar.sourceDir | 源jar所在目录 | File | ${project.build.directory} | 文件目录 | | sourceJar | -Dxjar.sourceJar | 源jar名称 | String | ${project.build.finalName}.jar | 文件名称 | | targetDir | -Dxjar.targetDir | 目标jar存放目录 | File | ${project.build.directory} | 文件目录 | | targetJar | -Dxjar.targetJar | 目标jar名称 | String | ${project.build.finalName}.xjar | 文件名称 | | includes | -Dxjar.includes | 需要加密的资源路径表达式 | String[] | 无 | io/xjar/** , mapper/*Mapper.xml , 支持Ant表达式 | | excludes | -Dxjar.excludes | 无需加密的资源路径表达式 | String[] | 无 | static/** , META-INF/resources/** , 支持Ant表达式 | ### 建议 默认为AES算法加密 一般可采用默认值,pom文件中不配置任何参数, 然后打包时用maven命令指定加密密码即可 例:`mvn clean install -Dxjar.password=lm927k` ## 打包后的使用 ### 打包后文件目录 ![](https://note.youdao.com/yws/public/resource/199c5a692d2e5e804afd0e3bda2b4833/xmlnote/2D82F6FBC3C14711B10A61DE9A3901C1/2398) 只需关注两个文件: 1. xjar.go : 执行此脚本可生成应用的启动器 2. demo.xjar : 加密后的xjar包 ### 生成启动器 - 首先编译环境需要有go的运行环境,没有的翻到本文最后,或百度 - 编译go脚本,生成启动器,执行:`go build xjar.go` 脚本执行完后,会生成一个二进制启动器: - windows:xjar.exe - linux:xjar #### 注意 - windows和linux上启动器不同,不可复用 - 运行环境只需要有启动器(xjar)和加密后的xjar包(demo.xjar)即可 ### 启动项目 执行脚本 `./xjar java -jar demo.xjar` ## 安装go运行环境 [点这里下载包](https://studygolang.com/dl) ### windows ![windows下载截图](https://note.youdao.com/yws/public/resource/199c5a692d2e5e804afd0e3bda2b4833/xmlnote/7850035BDC334A4E8D22FCF2DF0E90B3/2451) 安装包安装的不配置环境变量也行 ### linux ![linux下载截图](https://note.youdao.com/yws/public/resource/199c5a692d2e5e804afd0e3bda2b4833/xmlnote/965BE8BDACD147C2AAE10F7DEBAD39A7/2453) #### linux必须配置 1. 解压 `tar -xzvf go1.16.4.linux-amd64.tar.gz` 2. 打开文件 `vi /etc/profile` 3. 增加配置 `export PATH=$PATH:/usr/local/go/bin` 4. “:”后为解压后的go文件夹的bin目录 ### 测试 执行 `go version` 出现如下,即安装成功: ![](https://note.youdao.com/yws/public/resource/199c5a692d2e5e804afd0e3bda2b4833/xmlnote/769A8720A95F4F7FB7A7E9D703CDC929/2489) ![](https://note.youdao.com/yws/public/resource/199c5a692d2e5e804afd0e3bda2b4833/xmlnote/1EC946AB8B3B43EDA42E10ADC549E5DA/2491)