- 博客(22)
- 收藏
- 关注
原创 SpringSecurity使用与能力分析
默认情况下Spring Boot 在对 Spring Security 进入自动化配置时,会创建一个名为 SpringSecurityFilerChain 的过滤器,并注入到 Spring 容器中,这个过滤器将负责所有的安全管理,包括用户认证、授权、重定向到登录页面等。Spring Security 中的过滤器链通过 FilterChainProxy 嵌入到 Web项目的原生过滤器链中。如果要对 Spring Security 进行自定义配置,就要自定义这个类实例,通过覆盖类中方法达到修改默认配置的目的。
2025-03-14 16:09:32
958
原创 GIT使用git push后遇到报错的解决办法
注意:拉取远端代码的时候要注意你自己需要明确你应该用什么方式去拉取远端代码,如果你的commit次数过多的话,rebase会基于你的提交次数进行代码合并。4:由于项目紧张继续写自己的业务,然后add commit, git pull 这时候就不能正常push了,因为混用了git pull 和git pull --rebase两种拉取代码的方式。rebase:这种方式会产生编辑操作(这种方式会改变你本地的提交历史,你本地的提交会在远端的基础上在进行提交)。这时候需要保证你本地分支的干净(没有你添加的代码)
2025-03-14 15:39:13
463
原创 git删除一次代码提交
命令查看commit的历史记录,并找到想要取消的commit的哈希值。然后,使用git reset <commit-hash> 命令,将 <commit-hash>替换为想要取消的commit的哈希值。请注意,取消commit会改变本地仓库的历史记录。上一步操作之后,远程仓库上已经不会有之前提交的代码了,但是本地仓库上对应的代码已经git commit,此时就需要使用git reset命令来取消一个 commit。这将取消最新的commit并将修改的内容保留在工作区中,以便可以对其进行修改和重新提交。
2025-03-14 15:27:21
368
原创 GIT提交代码遇到冲突的解决办法
git stash可以用来暂存当前正在进行的工作,比如想pull最新代码,又不想加新commit,或者另外一种情形,为了fix一个紧急的bug,先stash,使返回到自己上一个commit,改完bug之后再stash pop以继续原来的工作。备份当前工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。git push –u 代码所在的分支 –f//强制提交,此时远程上的代码已被覆盖(不建议使用)从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。显示Git栈内的所有备份。
2025-03-14 11:54:44
422
原创 Makefile基础用法总结(二)
命令格式含义AR库文件维护程序的名称,默认为arAS汇编程序的名称,默认为asCCC编译器的名称,默认为ccCPPC预编译器的名称,默认为$(CC)-ECXXC++编译器的名称,默认值为g++FCFORTRAN编译器名称,默认值为f77RM文件删除程序的名称,默认值为rm-fARFLAGS库文件维护程序的选项,无默认值ASFLAGS汇编程序的选项,无默认值CFLAGSC编译器的选项,无默认值CPPFLAGSC预编译器的选项,无默认值CXXFLAGS。
2025-03-06 16:00:27
744
原创 jar包混淆工具及反编译工具的简单使用
6、添加依赖库,如果是复杂项目,在当前页面的下半块点击add…10、点击process,再点击save configutation,在弹出的对话框中,输入要保存的配置文件名称(我这里是test.pro),最后点击“保存”,如下图所示。Proguard是一款开源免费的java类文件的压缩、优化、混淆器,它删除没用的类,字段,方法和属性,使字节码最大程度的优化,使用简短无意义的名字来重命名类和方法。15、如果在处理过程中遇到了问题,一般会有提示,大部分一般是缺少相关类,如果缺少,在第6步把缺少的依赖加进来。
2025-03-05 11:49:40
1072
原创 常见序列化方式
Kryo:可直接使用,但直接序列化KUFL后,反序列化KUFL时有问题,需要修改代码,封装了大部分流的操作,可自定义序列化器,设置默认序列化器,不支持非static内部类 ,不支持没有无参构造函数。Protocol buffer:使用复杂,需要使用IDL来定义Schema描述文件,定义完描述文件后,使用protoc生成序列化和反序列化代码。Kryo:主要适用于Java(跨语言复杂),默认序列化器不支持字段扩展,需要修改默认序列化器或自己实现序列化器。Hessian2:可直接使用,跨语言不需要使用IDL。
2025-03-05 11:42:21
501
原创 软件加密狗术语介绍
软件开发商为了保护软件不被随意复制,采用了硬件加密的方式,通常市面所见的有USB硬狗和并口硬狗两种,狗的类型有Safenet、深思、飞天Rockey、域之天、以及以色列Hasp等等,通常这些狗无法直接读取数据,但是采用专门的设备如读卡器,可以读出硬狗里面的相应加密数据,并且是用写卡器可以把数据完美的写入空狗,从而实现完美复制的硬狗。虚拟狗是加密狗复制里面的比较高级的软模拟方法,虚拟狗是一种虚拟总线设备,通过特殊的内核驱动程序与加密狗的驱动程序进行通讯,可以形象地称为虚拟狗是电脑上的加密狗,俗称软件狗。
2025-03-05 11:39:29
223
原创 软件加密狗原理介绍
加密狗是外形酷似U盘的一种硬件设备,正名加密锁,后来发展成如今的一个软件保护的通俗行业名词,"加密狗"是一种插在计算机并行口上的软硬件结合的加密产品(新型加密狗也有usb口的)。加密狗是为软件开发商提供的一种智能型的软件保护工具,它包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。敏感数据,如加密密钥、许可证信息、数字签名等,被存储在加密狗的内部存储器中。用户或应用程序可以使用加密狗中的数据来验证其身份,以获取对系统或应用程序的访问权限。
2025-03-05 11:37:38
221
原创 Corosync Totem单环协议详解
当一个处理器得到令牌时,它首先清空输入缓冲区,将消息传递或是保留,直到这些消息能按顺序传递,随后广播重传请求的消息或是新的消息,若是广播了新消息,需要更新令牌seq字段的值,并比较令牌的aru与处理器my_aru的大小,若是my_aru较小,说明处理器没有接收到my_aru-aru间的所有消息,此时它会将aru替换为my_aru,且更新令牌上aru_id为该处理器标识符,还需要更新rtr为自己未收到消息的序列号列表。流量控制机制避免了由于缓冲区溢出导致的消息丢失,并提供了比以前的总排序协议更高的吞吐量。
2025-02-26 15:43:10
817
原创 Windows编译脚本流程和模块介绍
Project.pm主要负责单个工程的处理,包括了工程的创建_new,添加需要编译的文件(AddFile, AddFiles),添加头文件目录(AddIncludeDir),添加符号文件(UseDef),添加外部依赖库(AddLibrary),添加内部编译库直接的依赖(AddReference),具体对照可以参见《Windows编译操作文档》。Solution.pm主要通过GenerateFiles进行编译前的预处理,主要完成了公共文件的拷贝,符号文件的生成,以及调用对应的Perl脚本文件生成文件等工作。
2025-02-26 15:38:45
610
原创 JDBC学习之WireShark抓包
4、设置解码格式,由于抓取的包都是TCP协议的,为了方便分析包中的数据和观察协议,需要根据所使用的具体协议类型设置解码器,这里主要是设置PGSQL协议。点击分析,在下拉栏中点击解码为(A)5、点击左下角“+”,设置Field为“tcp port”,值设置为数据库使用的端口号,设置Current为“PGSQL”,最后点击“Save”Wireshark的使用场景是Windows,如果需要在linux中抓取协议包,应该使用tcpdump。可以根据需要抓取指定层的协议包,如传输层的TCP,网络层的ip等。
2025-01-15 17:22:03
285
原创 JDBC学习之数据库类型-JAVA类型-JDBC类型之间关系
在获取数据时,使用getXXX方法,如查询数据库返回的结果集ResultSet中,数据类型为JDBC类型,使用JDBC提供的getXXX方法可以进行类型检索,当该getXXX方法与数据类型不匹配时,就会报错。因此,要实现Java类型的应用程序与数据库之间的数据通信,需要使用JDBC来处理这种差异,不同的数据库对应不同的JDBC驱动。数据库中行的全局唯一地址,包含对象的数据对象编号,该行所在的数据文件中的数据块该行中数据块的位置(第一行是0)数据行所在的数据文件(第一个文件是1)Pg提供的空间类型‘点’
2025-01-15 17:15:04
969
原创 Java代码保密技术之(二)allatori配置文档选项说明
注解,访问修饰符,类或者接口,类的全限定名(包括包层次结构的),还可以通过extends表示继承于某个类的所有子类,implements表示实现了某接口的所有实现类,instanceof表示某一类型的所有类,还可以使用regexp: 来表示使用正则表达式来匹配。这个是用来指定哪些类名称,方法名称,字段名称不混淆的,如果混淆的是一个依赖包,应该指定包里面所有的public api不被混淆。Value: 打水印的内容,可以是公司版权,作者名字,公司名称或者其他一些可以用于唯一标记的东西,用于标识知识产权。
2024-12-27 14:33:06
998
原创 Java代码保密技术之(一)Proguard配置选项说明
*.class,**.gif) 匹配input.war的lib、support目录下所有jar,以及所有类文件和GIF文件。类名支持* **?rt.jar(java/**.class,javax/**.class) 匹配rt.jar中所有java/javax开头的包中的类。不压缩,默认压缩输入文件:除了匹配-keep的、以及它们直接、间接依赖的所有类、类成员,都被移除。**.gif,images/**)匹配input.jar中images/目录中所有文件,除了GIF。通配符*匹配文件名中的多个字符;
2024-12-27 14:30:10
999
原创 快速看懂UML类图
类图(Class diagram)是UML定义的一种显示模型静态结构,特别是模型中类、类的内部结构以及它们与其他类的关系的图。在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。组合表示类之间的整体与部分的关系,是一种更强的聚合。在UML类图中,类使用包含类名、属性和方法且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含了name,age和address这3个属性,以及work()方法。
2024-12-20 18:11:40
540
原创 git分布式版本控制系统常用命令
git是目前世界上最先进的分布式版本控制系统,不需要中央服务器,每个人的电脑就是一个完整的版本库,工作时不需要联网。其保存了文件每一个版本的快照而不是变化信息,因此进行版本间的切换更加高效。1、clone(克隆):从远程仓库中克隆代码到本地仓库2、checkout(检出):从本地仓库中检出一个仓库分支然后进行修订3、add(添加):在提交前需将修订过的代码添加到暂存区或将新添加的文件添加进暂存区,表示该文件开始开始git管理。
2024-12-13 16:27:40
649
原创 常见的代码重构技巧介绍
公司开发的项目中随着客户的需求逐渐增加,项目版本迭代,加之参与编码人员较多,编码风格不统一,编码之前的设计缺少前瞻性难以符合新需求等问题的增加,代码会不停地堆砌,逐渐出现冗余和bug风险,如果没有人为代码质量负责,代码就会往越来越混乱的方向演化,当混乱到达一定程度,量变会引起质变,项目维护成本会主键增加,甚至已经高过开发一套新代码的成本,此时想要去重构代码已经相当艰难。小型重构是对代码细节的重构,主要是针对类、方法、变量等代码级别的重构,比如规范命名和注释,消除超大类或方法,提高代码的重用性等。
2024-12-13 16:23:18
354
原创 VSCode Server离线安装
1、Windows环境中安装vscode、以及remote-ssh扩展包,并配置ssh连接。2、在服务器端安装vscode-server。3、利用公钥私钥配置ssh免密连接。
2024-11-28 17:50:47
2006
原创 Java代码保密技术分析
通过以上几个方面的对比,结合我们的实际需求,以及目前所拥有的技术能力,在能保证高度安全的情况下,选择一个使用成本低,易于系统维护的加密技术是比较合理的,所以建议使用字节码转换技术进行加密。利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析(替换类名,变量名,方法名,参数名等)软件交付部署后,尤其是web应用,如果被还原成源码,很容易发现潜在漏洞,被非法利用操作,对系统数据产生破坏,因此安全也是源码加密的重要因素。不支持反射和动态代理的框架,
2024-11-19 17:02:46
412
原创 Java接口性能分析-Arthas工具
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。
2024-11-19 16:50:05
918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人