JAsypt暗号化spring-bootプロファイル
12953 ワード
本文コードhttps://gitee.com/tothis/spring-boot-record/tree/master/jasypt
現在の最新バージョンは3.0です.0しかし、私は走っていません.本文は2.1を使います.2公式サイトのドキュメントを実現
依存の追加
テストクラス
塩の値はプロファイルに直接配置すると無効になります.したがって、環境変数または環境属性に配置できます
スプリングbootプロファイルで${key}を使用して値を取ると、環境変数と環境属性の値が自動的に取得されます.
springbootを構成するには@EnableAutoConfigurationを構成する必要がありますが@SpringBootApplicationに含まれています
テストコントロール
現在の最新バージョンは3.0です.0しかし、私は走っていません.本文は2.1を使います.2公式サイトのドキュメントを実現
依存の追加
<dependency>
<groupId>com.github.ulisesbocchiogroupId>
<artifactId>jasypt-spring-boot-starterartifactId>
<version>2.1.2version>
dependency>
テストクラス
public class JasyptTest {
private final String salt = "salt";
/**
* 3.0.0 PBEWithMD5AndDES 3.0.0 PBEWITHHMACSHA512ANDAES_256
*/
private final String algorithm = "PBEWithMD5AndDES";
@Test
public void testEncrypt() {
// jar password
// java -cp D:\apache-maven\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=123456 password=salt algorithm=PBEWithMD5AndDES
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm(algorithm);
config.setPassword(salt); //
standardPBEStringEncryptor.setConfig(config);
String plainText = "123456"; //
String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
System.out.println(encryptedText);
}
@Test
public void testDecrypt() {
// java -cp D:\apache-maven\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="UQYWKlRt8B8xR5S0qK/W1w==" password=salt algorithm=PBEWithMD5AndDES
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm(algorithm);
config.setPassword(salt); //
standardPBEStringEncryptor.setConfig(config);
System.out.println(standardPBEStringEncryptor.decrypt("z/DToUyute3CJDZc22bN9w=="));
System.out.println(standardPBEStringEncryptor.decrypt("UQYWKlRt8B8xR5S0qK/W1w=="));
System.out.println(standardPBEStringEncryptor.decrypt("qMayX003HCjXkp8wsstiqQ=="));
}
}
塩の値はプロファイルに直接配置すると無効になります.したがって、環境変数または環境属性に配置できます
jvm
//
System.getProperty("test")
// test default
System.getProperty("test", "default")
//
System.setProperty("test", "value");
// app.jar test value
java -jar app.jar -Dtest=value
// map map UnsupportedOperationException
System.getenv()
// key test
System.getenv("test")
スプリングbootプロファイルで${key}を使用して値を取ると、環境変数と環境属性の値が自動的に取得されます.
springbootを構成するには@EnableAutoConfigurationを構成する必要がありますが@SpringBootApplicationに含まれています
jasypt:
encryptor:
# JASYPT (java -jar xxxx.jar JASYPT=abcd)
# java -jar xxxx.jar --jasypt.encryptor.password=abcd
# JASYPT JASYPT abcd
password: ${JASYPT:abcd}
algorithm: PBEWithMD5AndDES
# ENC ENC()
baidu-ak: ENC(F454f8a5efe5e577997931cc01de3974)
テストコントロール
@Controller
public class TestController {
@Value("${baidu-ak}")
private String baiduAk;
@GetMapping("test")
public String test() {
return baiduAk;
}
}