Jasypt加密
在日常开发中,我们需要在配置文件中写入我们的密码,如:
这样明文显示,非常不安全,所以我们可以用到Jasypt来进行加密。
导包
<!--springboot整合jasypt-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>1.18</version>
</dependency>
编写秘钥加密工具类
import org.jasypt.util.text.BasicTextEncryptor;
public class JasyptUtil {
public static void main(String[] args) {
//jasypt.encryptor.password=quyi
String keyword = "root";//需要加密的明文
BasicTextEncryptor encryptor = new BasicTextEncryptor();
//encryptor.setPassword(System.getProperty("jasypt.encryptor.password"));//秘钥
encryptor.setPassword("abcdefg");//秘钥
String word = encryptor.encrypt(keyword);//密码进行加密
System.out.println("密文:" + word);
}
}
运行之后,就可以在控制台看到我们加密之后的密文了,大致格式这样子的:oI7rL89FaPJdu3DPfEiQlA==
这个时候可以把我们的密文配置到配置文件中去了
注意,这里密文用 ENC(密文) 包裹起来,如上图。这里的ENC也可以用别的来代替,方法自行百度。
这个时候大致已经做好了,就这么简单,但是还不能启动,还需要我们把秘钥配置给 VM options:
-Djasypt.encryptor.password=abcdefg
这样启动的时候,这个参数就能被虚拟机拿到。
如果是部署的时候我们可以在启动命令后面加上这个参数即可:
java -jar -Djasypt.encryptor.password=abcdefg xxxx.jar