怎么用java对数据进行加密解密?
使用Virbox Protector对Java项目加密有两种方式,一种是对War包加密,一种是对Jar包加密。Virbox Protector支持这两种文件格式加密,并且加密用于解析class文件的j***a.exe,并且可以实现项目源码绑定制定设备,防止部署到客户服务器的项目被整体拷贝。
两种加密方式
War 包加密
当你的项目在没有完成竣工的时候,不适合使用war 文件,因为你的类会由于调试之类的经常改,这样来回删除、创建 war 文件很不爽,最好是你的项目已经完成了,不改了,那么就打个 war 包吧,这个时候一个 war 文件就相当于一个web应用程序;而 jar 文件就是把类和一些相关的***封装到一个包中,便于程序中引用。
Jar 包加密
在编写j***a代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。Jar包有已知的jar包及自己导出的jar包。
加密流程
我们如何对已知的jar 或者自己导出jar包做加密并给别人使用呢?下面是对简单的加密流程介绍。
War包加密流程
1、打包War包
有什么办法能针对J***a加密?
1、HASP加密锁提供的外壳加密工具中,有一个叫做DataHASP数据加密的功能,这个功能可以很好的防止反编译而去掉api的调用,大家知道:硬件加密锁的保护原理就是让加密过的软件和硬件紧密相连,调用不会轻易地被剔除,这样才能持久地保护您的软件不被盗版,同时,这种方式使用起来非常简单,很容易被程序员掌握,要对一个软件实现保护,大约只需几分钟就可以了。下面简要介绍一下它的原理:运用HASP HL的外壳工具先把当作一个数据文件来进行加密处理,生成新的j***a程序,因为这个加密过程是在锁内完成的,并***用了128位的AES算法,这样,加密后的j***a程序,无论你***用什么样的反编译工具,都是无法反编译出来。您的软件也只有被加密过的j***a解释器并有加密锁的情况下才能正常运行,如果没有加密锁,程序不能运行,从而达到真正保护您的软件的目的,该方法只支持Windows平台。
2、HASP提供专门针对j***a外壳加密工具,直接加密jar或war包,防止反编译,目前支持J2SE,J2EE主要支持容器为TOMCAT6.0以上,可在Windows和Linux平台下运行,如果情况适合则是最简单的使用方法。
j***a synchronized锁对象,当对象引用是null的时候,锁的是什么?
谢谢邀请
在J***a中,同步的代码块一次只能由一个线程执行。此外,j***a支持多个线程同时执行。这可能导致两个或多个线程同时访问相同的字段或对象。
同步是使执行中的所有并发线程保持同步的过程。同步可避免由于共享内存视图不一致而导致的内存一致性错误。当方法声明为synchronized时 ; 该线程持有监视器或锁定对象为这个方法的对象。如果另一个线程正在执行synchronized方法,则您的线程将被阻塞,直到该线程释放监视器。
请注意,我们可以在类中使用关键字来定义方法或块。关键字不能与类定义中的变量或属性一起使用。
使用synchronized锁 需要注意下面几个方面
- J***a中的同步保证没有两个线程可以同时或同时执行同步方法,这需要相同的锁定。
- keyword只能用于方法和代码块。这些方法或块可以是静态的还是非静态两种。
- 当线程进入J***a 方法或阻塞时,它[_a***_]一个锁,每当它离开同步方法或阻塞时,它就会释放锁。即使线程在完成后或由于任何错误或异常而离开同步方法,锁也会被释放。
- J***a 关键字本质上是可重入的,这意味着如果同步方法调用另一个需要相同锁定的同步方法,那么持有锁定的当前线程可以在不获取锁定的情况下进入该方法。
- 如果synchronized块中使用的对象为null,则抛出J***a同步。例如,在上面的代码示例中,如果将lock初始化为null,则将抛出“ ” 。
- J***a中的同步方***为您的应用程序带来性能成本。因此,在绝对需要时使用同步。另外,请考虑使用同步代码块来仅同步代码的关键部分。
- 静态同步和非静态同步方法可能同时或同时运行,因为它们锁定在不同的对象上。
- 根据J***a语言规范,您不能将关键字与构造函数一起使用。这是非法的,会导致编译错误。
- 不要在J***a中的同步块上的非最终字段上进行同步。因为非最终字段的引用可能随时改变,然后不同的线程可能在不同的对象上同步,即根本不同步。最好是使用String类,它已经是不可变的并且声明为final。