摘要:
最近公司有将项目加密部署的需求。 也就需要将jar包部署到第三方的服务器,为了防止第三方开发下载逆向到源码,于是就需要将jar包加密后再部署。 在网上搜了下,找了个开源项目:xjar4springboot3 这个项目是xjar的第三方分支,由于xjar不支持springboot3,所以这个项目作者自 阅读全文
摘要:
在实际项目中,有很多时候需要和定位和省市区打交道。 一般来说,定位解析到省市区最快的方式就是直接调用高德的api(手动狗头) 不过高德有限制,规模小还行,大一点就难受了(得加钱!)。 我司就是这个情况,于是自己搞一个反解析的,项目已经开源,朋友们拿去就可以用! 项目提供了完整的省市区行政编码,包括j 阅读全文
摘要:
在java中,正常来说序列化是可以直接继承Serializable,或使用类似于fastjson, protobuf等框架。 但是这些框架对于二进制协议,自定义协议,私有协议方面却不太好使,私有协议大多还是按照字节的方式组织数据,对于java来说需要控制每个属性的序列化方式, 所以这块主要还是以传统 阅读全文
摘要:
很多时候,当程序OOM或者其他异常情况时,我们需要搞清楚当时应用内部数据情况,所有某些时候我们需要查看当时内存镜像中某些成员变量的值。 比如查看当时内存实例中数据库账号,密码是否正确等等。 直接进入正题,我们首先搭建一个测试使用的springboot项目,除了基本模板代码外,剩余代码如下: 我们预期 阅读全文
摘要:
tcp协议是最底层的,一般来说无需修改,直接使用。但是在某些场景下,直接使用会带来一些安全性的问题:比如物联网设备。 物联网设备需要经常的发送消息到服务器,如果直接使用标准TCP协议,攻击者在抓包后很容易获得服务器的端口,然后进行以下操作: 饱和攻击,将所有设备离线! 报文解析,通过对报文的处理来逆 阅读全文
摘要:
公司做物联网项目, 后端采用java+netty开发, 端口如果直接暴露使之容易被扫描攻击。 故实现自定义TCP头, 这样可以在握手阶段就丢弃数据包,达到提高攻击门槛的目的。 在网上找了一圈,找到一个现成得, 原理如图: 可以自定义tcp封包,不满足要求得封包将会被抛弃不予处理,这样即使是进行攻击也 阅读全文
摘要:
最近对接一个银行的项目,需要传一个地址,但是该地址id是取自于银行提供的银联卡跨行业务地区代码标准中的id 而这个标准中的地区id,和我们库里的不匹配,因为我们库里用的行政区域划分的 而且银行提供的还是个word文档,需要我手动解析去匹配。,艹蛋 过程不摆了,只能通过地名进行匹配,匹配过程艰辛啊,有 阅读全文
摘要:
netty提供了高扩展,高可用的方案,让我们开发者节省了很多开发成本。 但是netty关于协议解析这块还需要手动的读取buffer, 麻烦不说,还不能摸鱼了。 后来在网上找到一套可以像json一样转换对象的工具,magic-byte 剩下的只需要定义协议实体,然后调用序列化方法就好啦,用起来不错,给 阅读全文
摘要:
java中,字节数组转对象不外乎以下几种: 1. 使用原生的serilize 进行序列化读写 这个直接使用java内置的进行读写就行,但是不方便而且体积大冗余信息多。 2. 使用第三方将字节数组转为对象 第三方一般需要自己来实现序列化逻辑,或者对序列化流程进行标注。这里可选的框架一般是 magic- 阅读全文
摘要:
公司有对接网络设备的需要 ,由于协议是自己定的。所以对象在序列化时也需要自己序列化。很麻烦,在网上搜索了一圈。 找到了一个框架,可以通过注解来申明序列化过程。用起来还是很简单的,但是使用过程中发现以下坑: 当序列化为字节时,`dynamicSizeOf`引用为0, 但是实际数组有3个数据项,并没有序 阅读全文