我们在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>
二:yml设置文件中引入我们的passwodk,也就是所谓的key
# 设置文件加密key jasypt: encryptor: password: panther
三:建立我们一个东西包
代码示例: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==")); } }
四:运用要领
上面东西包种有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==)
以上就是SpringBoot集成Jasypt平安框架以及设置文件内容加密(代码示例)的细致内容,更多请关注ki4网别的相干文章!