专业的编程技术博客社区

网站首页 > 博客文章 正文

Jasypt2.x与Jasypt3.x的使用区别详细介绍一下?

baijin 2024-11-13 09:32:00 博客文章 4 ℃ 0 评论

Jasypt (Java Simplified Encryption) 是Java应用用于对操作中的数据进行加密解密操作的依赖库,提供了Jasypt 2.x 和 Jasypt 3.x 两个主要版本,这两个版本在使用的时候还是有点区别的,下面我们就来看看它们二者在使用过程中都有哪些区别。

主要区别

兼容性

  • Jasypt 2.x:是与旧版本的Java进行兼容,例如常用的Java7或者是Java8等。
  • Jasypt 3.x:则是与高版本的Java进行兼容,主要就是针对Java11以上的般般,并且增加了相关的新特性的支持。

配置方式

  • Jasypt 2.x:在配置过程中比较的繁琐,需要大量的配置才能正常的运行
  • Jasypt 3.x:简化了相关的配置过程,特别是在SpringBoot项目中,我们可以通过变量进行引入,使用相对简单。

下面我们就来看看二者在使用上有哪些具体的区别。

添加引用

Jasypt 2.x

<dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt</artifactId>
    <version>2.x.x</version>
</dependency>

Jasypt 3.x

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.x.x</version>
</dependency>

这里需要注意,<groupId>org.jasypt</groupId>里面其实是不存在得,有兴趣的读者可以看看在国外的仓库里面有没有,国内的仓库里面是没有这个依赖的,所以应该是如下的这个依赖。

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>

加密配置的区别

Jasypt 2.x

在2.x的版本中,通过如下的方式进行数据的加密操作,如下所示。

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("mySecretKey");
String encryptedText = encryptor.encrypt("myText");
String decryptedText = encryptor.decrypt(encryptedText);

Jasypt 3.x(使用Spring Boot集成)

在3.x的版本中可以直接通过如下的方式来进行配置。

jasypt.encryptor.password=mySecretKey

在代码中不需要显式的进行配置,因为在Spring Boot中会自动进行配置。

与SpringBoot应用的集成

Jasypt 2.x

在Jasypt 2.x中,并没有直接提供对于SpringBoot应用的集成操作,需要手动进行集成并且完成相关的加解密操作。

Jasypt 3.x

在Jasypt 3.x中提供了对于SpringBoot的集成,也就是jasypt-spring-boot-starter,如下所示。

jasypt.encryptor.password=mySecretKey

可以直接进行配置使用。

配置数据

Jasypt 2.x

在Jasypt 2.x中提供的很多参数需要在代码中设置,例如加密算法、迭代次数等。如下所示

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setAlgorithm("PBEWithMD5AndDES");
encryptor.setKeyObtentionIterations(1000);
encryptor.setPassword("mySecretKey");

Jasypt 3.x

在Jasypt 3.x中由于支持了SpringBoot的内容,所以可以通过配置文件的方式来进行操作如下所示。

jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.keyObtentionIterations=1000
jasypt.encryptor.password=mySecretKey

其他的特性

在Jasypt 3.x中还引入了关于加密算法的支持以及很多简单高效的配置管理方式,可以更方便地与Spring Boot进行集成和管理配置。

总结

也就是说,Jasypt 3.x相对于Jasypt 2.x在使用方式上有了明显的改进,特别是对于SpringBoot应用的集成,在3.x中有了明显改变,并且随着Java版本的迭代升级Jasypt版本也在迭代升级来适配Java版本的变化,如果你现在正在想用Jasypt进行配置加密操作,建议选择Jasypt 3.x版本,因为它更加高效便捷。

问题

笔者在开发过程中分别引入了如下的两个依赖

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

第二种

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.1</version>
</dependency>

在这个操作过程中,笔者使用了3.0.4版本但是按照上面的配置完成之后,就会报错,但是使用2.1.0版本按照上述配置就不会报错,所示建议就是在使用的过程中一定要注意相关的版本依赖问题,以及加密的方式的问题。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表