Jasypt 加密

引言

Jasypt 也即Java Simplified Encryption是Sourceforge.net上的一个开源项目。在当地时间11月23号的通告中,Jasypt 1.4的新特征包括:加密属性文件(encryptable properties files)、Spring Framework集成、加密Hibernate数据源配置、新的命令行工具、URL加密的Apache wicket集成以及升级文档。

根据Jasypt文档,该技术可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查数据的sums. 其他性能包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二进制文件。Jasypt也可以与Acegi Security整合也即Spring Security。Jasypt亦拥有加密应用配置的集成功能,而且提供一个开放的API从而任何一个Java Cryptography Extension都可以使用Jasypt。

Jasypt还符合RSA标准的基于密码的加密,并提供了无配置加密工具以及新的、高可配置标准的加密工具。

整合SpringBoot

  • 引入依赖

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>
  • 编写配置

jasypt:
  encryptor:
    algorithm: PBEWithMD5AndDES
    password: cf150b74e4824146ad76e9ebe757ba76 #使用加密秘钥
  • 通过程序传递密钥

    -Djasypt.encryptor.password=cf150b74e4824146ad76e9ebe757ba76

  • 加密、解密

@Autowired
StringEncryptor encryptor;

@Test
public void testSecret() {
    //加密
    String url = encryptor.encrypt("localhost");
    System.out.println(url);
    //解密
    String decrypt = encryptor.decrypt("nRmCj//nOuErKepiS6dyBO/9Ff7LGCXZ");
    System.out.println(decrypt);
}
  • 使用

mysql:
  host: ENC(pNVN9SKixSnfJ8yZjjIESZuP8HTwG0Hm)

spring:
  thymeleaf:
    suffix: .html
    prefix: classpath:/templates/
    cache: false
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://${mysql.host}:3306/emp?characterEncoding=UTF-8
    username: ENC(M9LpI0WkgVh0rpx+BkOGew==)
    password: ENC(M9LpI0WkgVh0rpx+BkOGew==)
最后修改:2021 年 10 月 19 日 12 : 36 AM
如果觉得我的文章对你有用,请随意赞赏