# 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`
## 打包后的使用
### 打包后文件目录

只需关注两个文件:
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

安装包安装的不配置环境变量也行
### linux

#### 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` 出现如下,即安装成功:

