亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享

 更新時間:2020年08月08日 09:02:12   作者:樂之終曲  
這篇文章主要介紹了SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

密碼安全是非常重要的,因此我們在代碼中往往需要對密碼進(jìn)行加密,以此保證密碼的安全

加依賴

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

加配置

# jasypt 密碼加密配置
jasypt:
 encryptor:
 # 加密鹽值
 password: jasypt
 # 加密算法設(shè)置 3.0.0 以后
 algorithm: PBEWithMD5AndDES
 iv-generator-classname: org.jasypt.iv.NoIvGenerator

PS:可以看到配置中特意配置了加密算法,原因是官方在 3.0.0 以后更改了加密算法,所以假如你不設(shè)置的話,使用網(wǎng)上的方法加密出來的密碼啟動就會報錯,如圖:

在這里插入圖片描述

官方 issue:Failed to bind properties under ‘spring.datasource.password' to java.lang.String` #154

在這里插入圖片描述

版本在 3.0.0 之前的 Jasypt

需要額外添加 Jasypt 的加密鹽值配置到 Tomcat

-Djasypt.encryptor.password=xxxx

工具類

如果你想手動使用 Jasypt 進(jìn)行加解密

import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

public class JasyptUtil {

 /**
  * Jasypt生成加密結(jié)果
  * @param password 配置文件中設(shè)定的加密鹽值
  * @param value 加密值
  * @return
  */
 public static String encyptPwd(String password,String value){
  PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
  encryptor.setConfig(cryptor(password));
  String result = encryptor.encrypt(value);
  return result;
 }

 /**
  * 解密
  * @param password 配置文件中設(shè)定的加密鹽值
  * @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("PBEWithMD5AndDES");
  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) {
  // 加密
  String encPwd = encyptPwd("jasypt", "123456");
  // 解密
  String decPwd = decyptPwd("jasypt", encPwd);
  System.out.println(encPwd);
  System.out.println(decPwd);
 }
}

數(shù)據(jù)庫配置解密

用官方提供的保留字 ENC,將加密的密碼包裹即可

spring:
 datasource:
 url: jdbc:mysql://xx.xx.xx.xx/xxxx?useUnicode=true&characterEncoding=utf8&useSSL=false
 username: root
 password: ENC(加密后的密碼)
 driver-class-name: com.mysql.jdbc.Driver

到此這篇關(guān)于SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密以及踩坑的記錄分享的文章就介紹到這了,更多相關(guān)SpringBoot 集成 Jasypt 對數(shù)據(jù)庫加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論