使用ulisesbocchio对配置文件信息加密

前言

我们在项目配置文件中常常暴露一些敏感关键信息;例如:数据库的连接URL、用户名、密码、一些中间件的连接信息等。使用ulisesbocchio对配置文件信息加密为了安全起见,我们常常需要将这些信息进行加密后进行配置。下面给大家介绍如何使用jasypt来进行关键信息的加解密。

jasypt简单介绍

jasypt 是一个简单易用的加解密Java库;可以快速集成到 我们Spring Boot 项目中,并提供了自动配置,使用非常简单。jasypt 的实现原理是实现了 ApplicationContextInitializer 接口,重写了获取环境变量的方法,在容器初始化时对配置文件中的属性进行判断,若包含前后缀(ENC(…))表示是加密属性值,则进行解密并返回。

如何使用

添加Maven依赖

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

配置加密密钥

# 配置数据源加密的密钥
jasypt:
  encryptor:
    password: root_123

信息加密获取密文

获取密文的方式常常有以下两种:

  • [x] 通过加密命令获取。
  • [x] 通过代码获取。

通过加密命令获取密文

cmd进入本地maven仓库D:softwareapachemavenmyrepositorycommellowarejasypt1.9.4路径下,执行如下命令:

java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=密码明文 password=密钥 algorithm=PBEWithMD5AndDESsp
  • input:指定原密码。
  • jasypt.encryptor.password:指定秘钥。

执行上述命令后会出现加密后的密码。下面我们分别使用上述命令加密数据库的连接信息,指定密钥:root_123

username: root
password: 123456

加密后的信息如下:

java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=root password=root_123 algorithm=PBEWithMD5AndDES

使用ulisesbocchio对配置文件信息加密使用ulisesbocchio对配置文件信息加密

通过代码获取密文

public class BasicText {
    public static void main(String[] args) {

        BasicTextEncryptor  textEncryptor = new BasicTextEncryptor();
        // 加密所需的salt(盐)
        textEncryptor.setPassword("root_123");
        // 加密
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("123456");
        //解密
        String deUserName = textEncryptor.decrypt("MD78K1z0uxvKNLqRYAgRiw==");
        String dePassWord = textEncryptor.decrypt("9sQn4+eCJ0O5cwJ5QXeGJQ==");
        System.out.println("username = " + username);
        System.out.println("password = " + password);
        System.out.println("deUserName = " + deUserName);
        System.out.println("dePassWord = " + dePassWord);
    }
}

运行上述程序即可获取密文信息。

密文替换

将配置文件中需要加密的数据替换成”ENC(密文)”的格式。使用ulisesbocchio对配置文件信息加密

启动项目,项目正常运行


原文始发于微信公众号(SimpleMemory):使用ulisesbocchio对配置文件信息加密

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137833.html

(1)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!