使用Allatori实现代码混淆加密

每个软件开发人员迟早都会意识到,他不仅必须支持他制作的产品并不断更新它,试图以所有可能的方式改进它,而且还要同时保护它。在我们这个信息技术和快速变化的市场时代,这些规则是在软件开发业务中取得成功的唯一途径。每个软件开发人员迟早都会意识到,他不仅必须支持他制作的产品并不断更新它,试图以所有可能的方式改进它,而且还要同时保护它。在我们这个信息技术和快速变化的市场时代,这些规则是在软件开发业务中取得成功的唯一途径。混淆器Allatori充分利用了人类大脑在代码保护领域的发明,可供许多软件开发人员使用,他们的目的是保护他们的秘密和专有技术——这实际上意味着保护他们的未来。它的官方网站地址为“https://allatori.com/”,前面这段也是从其官网上翻译来摘选的,看到更新日志时才知道JDK的版本也到了17的版本了,当前最新版本为Allatori-8.2,可免费用于教育和非商业项目。 代码混...

文章分类:经验分享 技术知识

获取文件内容的编码格式

对于字符文件的读取若要读取到预期的文本内容则需要传递对应的文件编码,若出现读取文件的编码与文件实际编码不匹配时则会出现乱码,本文则是提供几种获取文件编码的实现方式。本文所述的文件编码格式是狭义的个人认为的UTF-8和GB2312(GBK)的中文编码,其它的非中文编码则不在考虑的范围内。 所以,本文以简单的示例出发,提供两个文件分别是GB2312.txt和UTF8.txt,在代码中分别获取到这两个文件的实际编码即可,目前掌握了共3种方式,详细参考如下: Jdk内置Charset 这种方式没有具体的实践,听旁边的同时随口一说,主要是使用Charset中的编码进行编码,是canEncode是否可以按指定的编码进行编码啥的,同时也有见到那种将文件内容读取到,而后再转换为String类型,使用new String(文件内容.getBytes(编码) , 编码)后的文本再与原始文件内容进行对比,若对比...

文章分类:经验分享 技术知识

使用JAXB解析XML文件

1.基本介绍 这几年由于工作中的许多接口交互都使用到了XML来传递报文数据,本篇文章特对XML数据的解析以我熟悉的方式分享给大家。在十多年前Spring没有这么普及的时候(或者说我还是非常水的水军的时候),关于XML文件的解析还是一道标准的面试题,大概问到的则是解析XML的组件有几种,并且这几种解析的区别,同时我们还经常引以为傲的使用XML来自定义参数配置文件,再配合dom4j之类的解析组件进行参数解析,最终将XML中的标签以及熟悉映射到我们的Javabean数据对下中。巧的是曾经分享过一次会议是JDK的新特性,当我整理到JDK6的新特性时发现了新增强的JAXB特性,仔细了解后发现其是Java官方提供的读取和生成XML文档的实现,大家可以在官网的介绍中查看更多更精准的描述与细节知识点,参考官网地址为:https://www.oracle.com/technical-resources/ar...

文章分类:经验分享 技术知识

IntelliJ IDEA的 Groovy 反向生成代码

前面有两篇文章介绍了使用IntelliJ IDEA 内置的 Database功能反向生成 Model(Entity),今天突然想着把这块再捡起来增强一下,增加除了Model以外的Mapper、Service、Controller部分的代码生成,按照自己所遵循的规范来省去这部分的劳动,节省10分钟吧。 实现这个代码生成还有主要的原因,那就是mybatis plus所提供的代码生成器组件略微复杂,正常需要投入较多的时间去实践,而且对于它实现自动生成代码的契合度如何还有待斟酌,所以就没有深入分析,把前面使用IntelliJ IDEA 中内置的生成POJOs功能又捡起来,丰富了一下。 如果你还没有看过所谓的其它两篇反向生成的文章,建议跳转回去找找看吧,那两篇文章基础一些。本文是在反向生成JavaBean的基础上进行的扩展,即数据库表部分是基础,根据约定生成对应的实体对象,再实体对象基础上进行生成M...

文章分类:经验分享 技术知识

代码生成

IntelliJ IDEA反向生成Javabean(锲合度100%)

恰好前两天在一个同事的笔记里看到了使用IDEA反向生成JPA实体Entity的详细教程,体验了一下效果还不错,回归到自己的博客系统,每次新开一个功能模块总是要先创建数据库表,再根据数据库表结构生成对应的实体对象,本次就结合自己的功能需求,来使用IDEA反向生成我所需求的Javabean对象。 在此之前,也曾经写过类似的Demo,主要是根据查询某个表的字段结构生成对应的Java文件,比如包括的信息为:表注释转换为类注释;表字段类型转换为属性类型;表字段名称转换为属性名称;总之实现起来比较简单,但是这些东西在实现与使用的时候跟IDE是没有关系,也需要指定生成文件编码、生成文件路径等等繁琐的细节,然而本次分享的实现则较为完美,整个过程采用IDEA完成,使用Groovy语言实现(在今天之前我也是0基础),该语言在使用时跟Java语言一样,以至于我看着看着,琢磨着就将所有的问题全给解决了,作为新语言...

文章分类:经验分享 技术知识

代码生成

使用Java获取操作系统和硬件信息

距离上一次写博客已经过去2个半的月份了,也是工作忙,也是懒,也是在积攒文章吧,反正就是许久没有写了,本次分享一个用Java获取cao作系统和硬件信息的组件,在十一假期之前就准备分享的,然这些详细的参数实在是较多,本文的重点是将这些参数详细罗列出来,给出个人对参数的理解和尴尬的翻译结果,轻点喷。 本站对于博客的2.0的实现期待较高,所以在后台的管理主页面也计划将服务器的一些参数给读取显示出来,它们不仅限于Jdk与Web容器的参数,同时还要包括cao作系统自身的一些硬件参数,此为背景。 围绕这一大背景还是网罗相关的实现,其中Sigar与oshi的实现看起来比较给力,但前者需要依赖不同cao作系统的动态链接库文件实现,功能强大与否暂且不表,在我这里的背景下肯定是要考虑采用oshi的实现了,它的在实现上跨平台,每个参数都根据不同的cao作系统进行了实现,对于一些常用的参数,我们不需要调用系统底层接...

文章分类:经验分享 技术知识

Java动态代理之接口实现

在此之前个人技术的渣渣限制了我的想象,我所知道的接口在使用的时候,我们都是使用它的实现类,虽然有接触到许许多多的$Proxy$代理实现类,但从来没去想过这个破玩意到底是个什么,知道前段时间别的同事使用Spring data jpa查询返回List结果集的时候,泛型是个接口类型,也就听着他们随口的几句话让我觉得眼前亮了一下。 将SQL查询出来的结果集映射为一个Javabean对象,我们肯定都是有许许多多的实现版本了,使用反射将数据库查询出来的column名称与属性名称进行转换(再有就是匈牙利转驼峰),总的来说还是比较简单的,但这里的实现是将这个结果集转换为一个接口类,其中接口类提供多个get函数,也就是说将各个字段的返回值映射到这个具体的get方法上,说的也许抽象了,查看下列接口类的定义,实现将数据库查询出来的每条数据都映射到该接口的各个方法中: 代理接口类 package cn.chend...

文章分类:经验分享 技术知识

动态代理

Java动态代理之实现方法拦截

记得在很早的时候(本站另外一篇文章)通过学习视频了解到的Java的动态代理,照着敲出来的示例当时也只是似懂非懂的,直到后面再看视频的时候看到了基于List接口实现的代理,这次是真的懂了许多了,然而长时间抛在脑后时间久了就又需要花费时间去捡起,如果不是下篇文章所实现的示例,可能不会这么快整理出来本篇文章。 本次示例使用动态代理实现方法的前置与后置拦截,与Spring AOP的拦截器一样,可以根据特定类的路径、方法的规则、参数的类型等方式的限定拦截,懒得写了,就当本文是作为个人的笔记分享吧。 代理实现类 package cn.chendd.tips.examples.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; /** * @author chendd * @since 2...

文章分类:经验分享 技术知识

动态代理

将全站http换成https

在去年底的一次小小版本升级时,增加了全站的访问历史记录(记录的有referer),也顺便把友情链接处做了一个统计,增加了从友情站过来的访问次数统计,偶然有一天发现从一些个网站过来的请求无法正常获取到referer,经过分析后发现从https协议过来的网站请求均无法取得referer,后来又百科后了解到https可以正常跳转https和http(会增加referer参数),当时并没有想要去修改我站https的想法,只是萌芽了一颗早晚会尝试跳转的种子,只是从认知上有了一点点的了解,比如https不是免费的,而且很贵,但也有免费的,就是周期性的过期。 为了解决无法从https跳转过来的次数统计,我特意将友情链接处的https网站的统计数量给去掉了。 今天又琢磨起来这茬,感觉光搞个Tomcat的https不应该很麻烦啊,因为多年前尝试着在项目里面使用过https证书,记得当时直接搞jdk自带的ke...

文章分类:经验分享 技术知识

Docker学习(八)docker镜像的commit与push

截至目前为止已经涉及到好几个镜像和容器了,现在要将一个已经修改过配置的tomcat的docker容器给提交生成一款新的镜像,并且这个镜像可以推送至阿里云服务器上,后续再拉取的时候直接拉取自己的镜像。相关的docker命令分别为commit与push。 将容器提交为镜像 我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更合适的镜像,此时我们就需要使用到docker提供的commit命令,语法为:docker commit 容器名称 新镜像名称:标签(如果标签不存在则表示为最新的latest),下面我们就将本地中使用的8003的tomcat为基础生成一个tomcat-console的镜像,参考过程如下: 至此,将容器提交为镜像的过程已完成,上述命令参考为:docker commit tomcat9016 tomcat-console:9.0.16。 将镜像提交至...

文章分类:经验分享 技术知识

Docker学习
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云