经过一周多时间的研究,终于对sentinel产品的使用有个基本的掌握。其中走了不少的弯路,特此记录一下,以备后面回顾。

开发前的用料准备:

windows 10 x64位, tomcat7 x64bit(这里笔者前面在64bit的windows10中使用32bit的tomcat,加密之后运行不成功,可能与sentinel成品本身缺陷有关)

jdk1.7.80 64bit

sentinel加密的大致流程如下:

1.在windows中安装sentinel产品。安装好之后打开套件出现如下图所示的主界面:

2.在上图的其他工具中使用sentinel主锁向导导入主锁。导入主锁过程中需要下载很多api文件,如果网络不好,可以向销售商索要离线文件导入;

导入主锁成功后会生成一个开发商代码(开发号),注意这个开发号是与主锁一一对应的。

3.点击上图中的EMS,进入EMS系统,在此系统中规划定义系统功能(product id,feature id),其实在EMS中主要是为客户锁烧制一个功能id(feature id),

注意这个feature id 很重要,后面在envelop工具中为应用加密时需要用到。

4.在envelop工具中为应用加密。

sentinel加密产品有如下几种加密方案(针对于java开发的jar,war或class文件,对于exe文件加密则不用这么麻烦);

方案1.加密jar或war包中某个class文件的某些method实现功能模块的授权使用。其实不推荐这种方案(对于jdk和java某些函数使用上有限制),对于功能模块授权,软件开发者会在系统中开发功能授权模块,完全没必要使用第三方的。

方案2.加密java.exe和需要被保护的war,jar或dll或class文件。这种方案其实也有弊端。java.exe作为jre中核心文件,此文件被加密,将会影响其他非加密web应用的正常运行,即拔掉客户锁之后,凡事依赖此jre的java应用运行都会报错。

方案3.加密tomcat.exe和需要被保护的war,jar或dll或class文件。这是我后期将会采用的方案,虽然也有弊端(被加密的tomcat正常运行必须客户锁插上计算机),但是可以在一台计算机上部署多个tomcat解决这个弊端。本章着重讲解这个方案。

方案4.调用sentinel的api进行二次开发(使用api可对客户锁进行一系列的操作,如读取feature id,读写客户锁中的内存信息)。本章先不介绍这个方案。

5.在对tomcat和demo-nosec.war(暂以此war包为例讲解)加密后生成如下文件:

其中,被加密的war包使用解压工具解压会提示压缩包已损坏,因为此时已经被加密了,所以不能解压,tomcat7.exe文件大小会比原tomcat7.exe大些,因为sentinel像此exe中附加了些解密算法文件包;

6.将压缩版的tomcat安装为windows服务(如果你下载的是windows安装包,则忽略此步)。注意启动tomcat有两种独立的方式,一是双击运行startup.bat脚本,将会以dos模式运行tomcat;二是以管理员身份打开cmd窗口,cd到

tomcat的bin目录,运行命令: service.bat install MyTomcat7  安装tomcat为windows服务(service.bat remove MyTomcat7 卸载tomcat服务),安装成功后,启动服务如果失败,如下图,多半是没有为tomcat设置jvm等参数。

以管理员身份运行tomcat7w.exe,在弹出的窗体中找到java也签,填写如下图所示的参数。

(java classpath完整值为:G:\software\apache-tomcat-7.0.75-x64\bin\bootstrap.jar;G:\software\apache-tomcat-7.0.75-x64\bin\tomcat-juli.jar)

按照如上图所示填写参数点击应用后,再次在windows服务中启动tomcat7服务,如果还是失败,则在tomcat的bin目录中直接双击tomcat7.exe文件,即可弹出tomcat的启动界面。

7.将第五步加密后生成的tomcat7.exe,hasp_rt.exe和haspvlib_103268.dll文件拷贝至tomcat的bin目录下,将第五步加密生成的demo-nosec.war包放在tomcat的webapps目录下,双击bin目录中的tomcat7.exe查看启动情况。

在插上客户锁和进程中有tomcat7.exe的情况下是能够正确解密war包并部署应用的。

部署成功后在浏览器中访问:

这里需要说明的是,一定要保证任务进程中存在被加密的tomcat7.exe进程。

简单说一下sentinel加密使用原理:一个主锁拥有一个开发号,在EMS系统中使用此开发号为客户锁烧制一个功能id,在加密工具中为tomcat.exe附加上解密算法A和被加密的war包文件名称列表B,

tomcat的启动依赖于客户锁是否插上。在tomcat启动后,在webapps中查找应用名称是否存在于B中,如果有C存在于列表B中,则不管该C加密与否,都会强制使用A对C包进行解密,如果C没有加密,则会给出打开压缩包错误的提示从而造成未加密的war应用部署失败。如果C加密,则tomcat.exe正好使用A正确解密C从而成功部署应用。

转载于:https://www.cnblogs.com/franson-2016/p/6410348.html

关于sentinel LDK加密war包实现应用加密的使用方法相关推荐

  1. java程序加密jar包及war包加密

    加密锁加密java web项目中的 war包(或class文件)的演示 1. 启动外壳加密工具:Envelope 2. 选择自己的正式开发号(测试用户跳过此步骤) 3. 点击"程序" ...

  2. java 代码混淆 class字符串加密 jar包war包加密 支持JDK16

    1.功能介绍 Java文件是目前最流行的开发语言,因采用对象模式很容易进行整合复用大规模项目开发.但是目前因反编译严重,各行业由java开发的系统很容易本反编译,模仿借鉴,核心代码很容易被盗用. 特别 ...

  3. eclipse如何导出WAR包

    eclipse如何导出WAR包 WAR包是用于将java项目部署在中间件上的,例如部署在Tomcat,Weblogic,WebSphere等等,那么如何使用eclipse导出WAR包呢? 工具/原料 ...

  4. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫

    做Java开发,jar包和war包接触的都比较多. 今天,小编把两者的联系好好梳理下,花5分钟过一遍以后不再迷茫,你值得拥有: 一.概念 1. jar包:jar包是类的归档文件,与平台无关的文件格式, ...

  5. IDEA打包JavaWeb的War包并部署到Tomcat

    文章目录 前言 基础认识 JAR包 War包 JavaWeb 项目创建 War 部署 手动部署 WAR的打包 Tomcat部署 总结 前言 JavaWeb 工程,都是打成 War 包后进行发布的,打成 ...

  6. java war包混淆,spring项目的代码混淆(proguard)

    前不久被要求对java web的war包做代码混淆,我使用proguard6.0.3完成的.后面也许还会用到,因此记录下过程和配置方法,demo代码按照图1结构进行组织.仅对混淆功能进行说明,其他功能 ...

  7. 圣天诺 加密java_圣天诺Sentinel LDK 7.8壳加密的编译环境是什么?

    圣天诺Sentinel LDK 7.8,对打包后项目中的jar文件进行壳加密. 运行后报错,error.log中如下: 2019-04-03 09:18:42 [ main:2 ] - [ ERROR ...

  8. jar 反编译_Java加密jar包流程

    Java加密效果概述 深思对 java 的源码保护方式是通过 Virbox Protector 与DS Protector 工具进行保护.软件商无需任何代码开发,即可轻松加密Java应用程序.Jar包 ...

  9. jar包打补丁 jar -uf_Java加密jar包流程

    Java加密效果概述 深思对 java 的源码保护方式是通过 Virbox Protector 与DS Protector 工具进行保护.软件商无需任何代码开发,即可轻松加密Java应用程序.Jar包 ...

最新文章

  1. 程序员的核心竞争力究竟是什么?
  2. 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )
  3. 3、MySQL优化数据库结构的3种方法
  4. nej+regular环境使用es6的低成本方案
  5. linux系统做的小游戏,2007最新 100个Linux系统上的小游戏汇集
  6. 禁止i5笔记本按Ctrl+Alt+向下键翻转屏幕
  7. java10 WeakHashMap
  8. 利用爬虫获取网上医院药品价格信息 (下)
  9. 如何在一台电脑上使用两个git@osc的账号进行操作
  10. 测试象棋水平用哪个软件好,佳佳象棋软件作者李国来对象棋软件引擎的专业看法及测试指导...
  11. 领英开源企业级数据挖掘软件:WhereHows
  12. 计算机网络谢希仁课后答案第七版答案完整版
  13. java项目开发经验总结,值得收藏!
  14. 视频教程-Mikrotik RouterOS 软路由基础教程-网络技术
  15. R语言数据分析案例(1)
  16. vscode美化:主题切换+背景图片设置
  17. Slicer学习笔记(六十一)slicer下segmentation segment合并
  18. IBM X 345服务器无法从光驱启动配置解决方法——非常规方法
  19. SSD: Single Shot MultiBox Detector 之再阅读
  20. 使用Docker Compose构建ZigBee基础架构

热门文章

  1. csv文件导入Mysql
  2. UTC、CST、GMT等时区详解
  3. 传播延迟与传输延迟以及带宽时延积
  4. 渗透实战-JSP上传webshell报错500
  5. 机器学习之 各种熵详解
  6. DSG招聘Oracle工程师、销售(南京、上海、南昌)
  7. 基于MATLAB的算术编码
  8. Python基础知识-pycharm版-对象
  9. DY__ac_signature
  10. java中的pojo是什么意思