基于C/C++实现 java项目工程加密安全防范_jar c++加密-程序员宅基地

技术标签: java  安全  c语言  

场景介绍

为什么要加密?加密可以防止代码被窃取(who?),它重要吗?可以说重要也可以说不重要,主要看你觉的它是否重要。加密分为源码加密、编译后加密,本文针对后者

实现思路

1.将需要加密的JAR中的类方法进行加密替换,在启动运行时进行解密
2.根据时间+MAC+密码生成授权文件
在这里插入图片描述

使用

1.引用引用包

<dependency>
		    <groupId>liangxs</groupId>
  			<artifactId>secret</artifactId>
            <version>0.0.1-SNAPSHOT</version>
</dependency>

2.启动命令加入代理

-javaagent:secret-0.0.1-SNAPSHOT.jar

效果:启动时先检查授权文件是否到期、绑定的MAC对不对 然后将对JAR进行动态解密
在这里插入图片描述

微信/手机同号:13524503122

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/oThrowsException/article/details/123046272

智能推荐

redhat下的交叉编译安装-程序员宅基地

文章浏览阅读108次。1. 下载arm-linux-gcc-3.4.1.tar.bz2到系统的顶层目录下2. 解压 arm-linux-gcc-3.4.1.tar.bz2  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2  解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将   arm文件夹拷贝到/usr/local/下  # cd usr/loca..._redhat 交叉编译安装

MacBook Pro如何安装Windows 11(非虚拟机)_macbookpro安装win11-程序员宅基地

文章浏览阅读2.1w次。准备工具:可正常上网的MacBook Pro(基于intel的CPU)1:如果之前安装了Windows想安装Windows 11,请先备份数据。如果之前没有安装过Windows,请空降第四步2:跳转至Mac系统关机长按“option“,选择磁盘:MacHD3:清除原先安装的Windows到Mac界面后:启动台-工具-启动转换助理,打开-继续-恢复分区(输入本机管理员密码)一定要先备份好数据!!!4:下载映像打开内置浏览器至下载 Windows 10下载官方系统映像(64位ISO文_macbookpro安装win11

NotePad2轻便够用的文本编辑器_文本编辑器notepad2-程序员宅基地

文章浏览阅读344次,点赞8次,收藏10次。NotePad2轻便够用的文本编辑器,可以拖拽打开文本,和notepad++的功能差不多,可以平行替代。_文本编辑器notepad2

Gym入门&自定义环境操作_gym.make-程序员宅基地

文章浏览阅读7.1k次,点赞9次,收藏52次。gym使用及自定义环境_gym.make

1- Python 学习路径——入门篇_批量获取(切片):str【a:b:c】-程序员宅基地

文章浏览阅读199次。Python 学习入门篇知识点汇总梳理_批量获取(切片):str【a:b:c】

TCHAR char wchar_t 的区别_wchar_t 和 tchar-程序员宅基地

文章浏览阅读854次,点赞2次,收藏7次。有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,有必要把来龙去脉搞清楚。为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在里:typedef unsigned short wchar_t; 不能使用类似strcpy这样的ANSI C字符串函数来处理wchar_t字符_wchar_t 和 tchar

随便推点

基于SSD1306的OLED的驱动学习(一):SSD中文命令表(搬运)_ssd1306中文手册-程序员宅基地

文章浏览阅读2.5k次,点赞4次,收藏18次。SSD1306命令命令表单(D/C#=0, R/W#(WR#) = 0, E(RD#=1) 特殊状态除外)基本命令 D/C Hex D7 D6 D5 D4 D3 D2 D1 D0 命令 描述 0 81._ssd1306中文手册

TCP协议详解_sms、tcp/ip-程序员宅基地

文章浏览阅读8.2k次,点赞13次,收藏142次。TCP协议详解TCP服务的特点TCP头部结构TCP连接的建立和关闭(三次握手和四次挥手)TCP状态转移服务器端的状态转移过程客户端的的状态转移过程TIME_WAIT 状态超时重传拥塞控制TCP协议属于传输层协议。从通信和信息处理角度看,它属于面向通信部分的最高层,只有位于网络边缘的主机的协议栈才有传输层协议;同时也是用户功能中的最低层,一些重要的socket选项都和TCP协议相关。TCP服务的特点传输层协议主要有两个: TCP 协议和UDP协议。TCP协议相对于UDP协议的特点是:面向连接、字节流和可_sms、tcp/ip

python爬虫基础教程 python爬虫入门教程(非常详细)_爬虫python入门-程序员宅基地

文章浏览阅读1.7k次。python爬虫基础教程 python爬虫入门教程(非常详细)_爬虫python入门

问题一:CodeBlocks环境搭建及创建第一个C++程序_code::blocks 第一个c++程序-程序员宅基地

文章浏览阅读1.6w次,点赞9次,收藏12次。某业界大牛推荐最佳的途径是从raytracing入门,所以本屌开始学习《Ray Tracing In One Weekend》。该书是基于C++的。本屌从未学过C++。感觉告诉我,要先搭环境。至于为什么选择CodeBlocks,不解释。当下载的CodeBlocks版本不包含GCC时,自己配置GCC是可能出错的地方:1. 未将mingwm10_gcc…和wxmsw28u_gcc…解压到CB_code::blocks 第一个c++程序

Redis异步消息队列_redis订阅发布模式无消息时进行休眠-程序员宅基地

文章浏览阅读4k次。这里写目录标题使用list实现异步消息队列使用发布-订阅模式实现异步消息队列使用ZSet实现延时队列使用list实现异步消息队列Redis 的 list(列表) 数据结构常用来作为异步消息队列使用,使用rpush和lpush操作入队列,使用lpop 和 rpop来出队列。客户端是通过队列的 pop 操作来获取消息,然后进行处理。处理完了再接着获取消息,再进行处理。如此循环往复,这便是作为队列消费者的客户端的生命周期。可是如果队列空了,客户端就会陷入 pop 的死循环,不停地 pop,没有数据,接着再 _redis订阅发布模式无消息时进行休眠

shadowMap 简单回顾_create shadow maps-程序员宅基地

文章浏览阅读244次。编程指南:shadowMap示例连接编程指南部分代码获取gl变量var canvas = document.getElementById('webgl');var gl = getWebGLContext(canvas);获取Plane、Triangle顶点缓冲区,颜色缓冲区,索引缓冲区(数组转的)var triangle = initVertexBuffersForTriangle(gl); //三角形var plane = initVertexBuffersForPlane(gl); _create shadow maps

推荐文章

热门文章

相关标签