CodeMeter Java 加密

Lars Møller avatar

WIBU

2021-01-07

1.准备工作

1. 请先安装CodeMeterSDK开发包(可通过光盘及下载链接安装)。

说明

安装包中包含自动加密工具AxProtector和授权工具License Editor,通常我们都使用AxProtector加密工具的图形界面来加密程序,由于JAVA需要调整较多参数,为方便用户,威步制作了一个批处理程序,通过修改配置XML即可进行快速加密。

2. 威步会提供2个批处理加密文件Encrypt.batAxProtector.xml,如果您没有这些文件,请联系威步技术人员获取。
3. 插上加密锁。

2.配置加密参数

1. 使用记事本打开配置文件AxProtector.xml,修改其中参数。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AxProtectorJava xmlns:wibu="http://wibu.com/2013/AxpJavaControlFile/1.0"> <CommandLine> <Command>-kcm</Command> <Command>-f6000010</Command> <Command>-p13</Command> <Command>-cf0</Command> <Command>-d:6.20</Command> <Command>-fw:3.00</Command> <Command>-sl</Command> <Command>-nn</Command> <Command>-u:com.wibu.xpm.MessageHandler</Command> <Command>-ci</Command> <Command>-jos</Command> <Command>-jff:c</Command> <Command>-jcp:"F:\lib\"</Command> <Command>-wu0</Command> <Command>-jh:n</Command> <Command>-we0</Command> <Command>-eac</Command> <Command>-eec</Command> <Command>-v</Command> <Command>-o:"F:\protected\test.jar"</Command> <Command>"F:\test.jar"</Command> </CommandLine> <Wupi> <Jar EntryPoint="true" ClassProtectionLicenseList="None" MethodProtectionLicenseList="0"></Jar> </Wupi> </AxProtectorJava>
2. <Command>-f6000010</Command>:6000010为固定测试公司码,购买产品后需替换成正式公司码;(测试时请默认不要修改)
3. <Command>-p13</Command>: 设置产品码;(测试时请默认不要修改)
4. <Command>-jcp:"F:\lib\"</Command>: 设置所有依赖包的路径,需要把程序中用到的所有依赖包全都放置到该路径下,否则加密会提示错误。
5. <Command>"F:\test.jar"</Command>:设置需要加密的文件名和路径(支持jar,war等格式);
6. <Command>-o:"F:\protected\test.jar"</Command> :设置文件加密后保存的路径和文件名;

说明

 如果是普通可执行JAR包(包括Spring-Boot的程序),请去掉参数<Command>-jos</Command>

 如果是Web程序,则按示例中加上参数<Command>-jos</Command>。加密成功后的文件夹中除了加密后的JAR文件,另多出一个WibuXpm4JRuntime.jar文件,请复制到WEB服务器的lib目录下,例如F:\ Tomcat 7.0\lib。而加密后的JAR包则替换掉原来的JAR包部署在TOMCAT下运行。

3.开始加密

1. 配置好XML加密参数后,并确保AxProtector.xmlEncrypt.bat在同一目录里;
2. 双击Encrypt.bat开始加密;
3. 加密成功通常会显示下面信息,并且会生成加密后的文件。

4.运行程序

1. 运行加密程序前,请先把相应授权写入到加密锁中。

说明

加密锁中写入对应的授权才能运行程序,授权即示例里公司码6000010,产品码13这组授权。(具体授权写入操作可参考CodeMeter使用手册授权章节)

2. 如果加密的是普通可执行JAR包,直接执行加密JAR包。
3. 如果是WEB应用,加密成功后的文件夹中除了加密后的JAR文件,另多出一个WibuXpm4JRuntime.jar文件,请复制到WEB服务器的lib目录下,例如F:\ Tomcat 7.0\lib。而加密后的JAR包则替换掉原来的JAR包部署在TOMCAT下运行。

5.加密SPRING-BOOT

说明
• JAVA项目中的Spring-boot由于结构特殊,所以需要通过以下步骤来进行加密处理
• 针对Srping-boot的程序加密,请使用另外2个加密配置Encrypt_SpringBoot.batAxProtector_SpringBoot.xml,可联系威步技术人员获取。

1.       把需要加密的JAR包同Encrypt_SpringBoot.batAxProtector_SpringBoot.xml拷贝在同一目录。
2.       点击Encrypt_SpringBoot.bat,开始加密。
3.       加密完成后,查看一下当前目录里会生成一个AxProtector.log文件,打开日志在最后几行里显示如下信息则说明加密成功;加密失败则会有Error信息,请联系威步技术人员解决。
4.       加密成功后将会在当前目录里新生成protected目录,可在该目录里找到生成加密后的JAR包enc_xxxxxxxxx.jar。
5.       运行加密程序。

说明
• 加密锁中写入对应的授权才能运行程序,授权即示例里公司码6000010,产品码13这组授权。(具体授权写入操作可参考CodeMeter使用手册授权章节)
AxProtector_SpringBoot.xml里可设置要绑定的授权。
<Command>-f6000010</Command>
<Command>-p13</Command>

6.常见问题解决方法

1. 加密过程中报错找不到依赖类,要求用‘’-jcp‘’参数指定依赖包存放目录。报错截图如下:

解决办法:

I. 把需要加密的JAR相关所有依赖jar包都放在一个文件目录下,比如:D:\test\lib下,然后在上述XML文件中加入参数<Command>-jcp:"D:\test\ lib"</Command>
II. 如果是war包则需要把所有需要依赖的jar包全部解压拷贝到一个目录中,用-jcp参数指定这个目录。

2. 加密过程中报错有重名的class或者文件 。报错如下:

解决办法:

I. 如果是在tomcat下的运行的web程序,在引用lib文件夹中,找到报错的jar(请先把该jar在其他目录里保存复制一份),然后打开后找到重复的名字的class,删除掉后重新加密。加密完成之后请把原始未删除的jar再覆盖回去。
II. 如果是Springboot的程序,请用记事本打开Encrypt_SpringBoot.bat进行修改,在参数tfJar后面把报错的jar名字添上,然后保存退出,再执行该bat进行加密则不会再报错。
免费试用
0