打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBoot集成Jasypt安全框架,配置文件内容加密

我们在SpringBoot项目中的yml或者properties配置文件中都是明文的,相对而言安全性就低了很多。都知道配置文件中的都是一些数据库连接用户名密码啊、一些第三方密钥等信息。所以我们谨慎点,使用下加密吧。

这里面使用的是Jasypt安全框架

一:在pom.xml中引入jar包

<!-- Jasypt加密 --><dependency>	<groupId>com.github.ulisesbocchio</groupId>	<artifactId>jasypt-spring-boot-starter</artifactId>	<version>2.0.0</version></dependency>
Markup

二:yml配置文件中引入我们的passwodk,也就是所谓的key

# 配置文件加密keyjasypt:  encryptor:    password: panther
Markup

 三:创建我们一个工具包

代码示例:JasyptUtils.java

package com.zhuang.common.utils;import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;/** * @Created with Intellij IDEA * @Author : payne * @Date : 2018/5/18 - 10:37 * @Copyright (C), 2018-2018 * @Descripition : Jasypt安全框架加密类工具包 */public class JasyptUtils {    /**     * Jasypt生成加密结果     *     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password     * @param value    待加密值     * @return     */    public static String encryptPwd(String password, String value) {        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();        encryptOr.setConfig(cryptOr(password));        String result = encryptOr.encrypt(value);        return result;    }    /**     * 解密     *     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password     * @param value    待解密密文     * @return     */    public static String decyptPwd(String password, String value) {        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();        encryptOr.setConfig(cryptOr(password));        String result = encryptOr.decrypt(value);        return result;    }    public static SimpleStringPBEConfig cryptOr(String password) {        SimpleStringPBEConfig config = new SimpleStringPBEConfig();        config.setPassword(password);        config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);        config.setKeyObtentionIterations("1000");        config.setPoolSize("1");        config.setProviderName("SunJCE");        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");        config.setStringOutputType("base64");        return config;    }    public static void main(String[] args) {        // 加密        System.out.println(encryptPwd("panther", "root"));        // 解密        System.out.println(decyptPwd("panther", "GfP4qfnrJeqMvzN1nOemIQ=="));    }}
Java

四:使用方法

上面工具包种有main方法,填入你配置的key,然后填入你需要加密的value,直接运行即可。

类似配置文件中的数据库连接

# 开发环境spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://127.0.0.1:3306/panther_dev?useUnicode=true&characterEncoding=UTF-8    # Jasypt加密 可到common包中找到JasyptUtil加解密工具类生成加密结果 格式为ENC(加密结果)    username: ENC(S2G86yhb0OMJMeNXUaGwYw==)    password: ENC(GfP4qfnrJeqMvzN1nOemIQ==)
Markup

推荐文章:

SpringBoot 集成 MybatisPlus

点击查看 项目介绍 最近在学习新的项目框架,SpringBoot,具体模块可查看集成情况。 Mybatis Plus 是什么? Mybatis-Plus(以下简写MP)是国产开源的一款优秀的···

SpringBoot 项目多模块(Module)的运用以及设计

点击查看 这个SpringBoot项目的模块区分有: panther -- 父项 panther-common -- 通用包 panther-system -- 系统管理模块 -------···
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Springboot 配置文件、隐私数据脱敏的最佳实践(原理 源码)
一个依赖搞定Spring Boot 配置文件脱敏
Springboot 之 自定义配置文件及读取配置文件
读取外置config文件
SpringBoot | 第三章:springboot 配置详解
SpringBoot自动装配原理,这一篇就够了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服