SpringBootプロジェクトプロファイルパスワード暗号化(jasypt)
2961 ワード
JAsyptはPBEWithMD 5 AndDES暗号化方式を用いるため、暗号化されるたびに結果が異なり、データの暗号化に適している.
1、導入依存
2、その後ymlまたはpropertiesで構成する
これは塩の値です
3、テストクラス
@RunWith(SpringRunner.class) @SpringBootTest public class test_jiami {
@Autowired StringEncryptor stringEncryptor;
@Test public void encryptPwd() { String result = stringEncryptor.encrypt("root"); System.out.println(result); }
}
この中のパラメータはあなたのパスワードで、それから戻ってきたのは暗号化されたパスワードです:yyrqk 9 reuY 5 kScmS 3 D 9 mWQ==
4、暗号化されたパスワードをプロファイルに貼り付ける
テストクラスは提出しないでください.
別の方法:
あなたのmaven倉庫で見つけました:D:repositoryorgjasyptjasypt1.9.2、このパッケージは暗号化されたパッケージです.
cmdはこのパッケージの下で次のコマンドを実行します.暗号化されたパスワードを返します.
次のようになります.
input:データベースの明文パスワードです
password:機密の塩です
Algorithm:暗号化された方法(デフォルト)
そしてプロファイルに塩を入れてOK
補足:
デフォルトjasyptの鍵はプロファイルに置かれていますが、暗号文と鍵がプロファイルに置かれるため、私は鍵をプログラムに置きます.
public static void main(String[]args){/**構成プラス復号と鍵、構成ファイルの暗号文とは別に*/System.setProperty("jasypt.encryptor.password",ConstantValue.JASYST_ENCRYPTOR_PASWORD);
SpringApplication.run(OrderApplication.class, args); }
Springbootはdruidを使用してパスワードを暗号化することもできます
1.まずdruidのmaven依存とlog 4 j依存を加える
com.alibaba druid 1.1.10 log4j log4j 1.2.17
2.RSAパスワードの生成
java -cp C:\Users\admin\.m2\mavenrepository\com\alibaba\druid\1.1.10\druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 123456
3、プロファイル
spring.datasource.url=jdbc:mysql://localhost:3306/mysql?characterEncoding=utf8 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=admin spring.datasource.password =v3B2kpWSwA1zlGXL+T9rtcOTXZ3/PfDwckaxIPFr7VGsgZa4o8TGBJ+Qb3VyK1LJGARvaZju/E73trRMEFE28A== spring.datasource.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANZWTGLh2RCe8Loww1byCWE9X8aOSHu8j0uTtVNe/Cf8l17BNgRdy0+QzA66InWUvHHU03DGoLjS/4tOuoGzlC0CAwEAAQ==
4、データベース構成クラスの構築
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
public class DruidDatsSourceConfig {
........
@Bean
@Primary
public DataSource druidDataSource() throws Exception {
DruidDataSource datasource = new DruidDataSource();
datasource.setPassword(ConfigTools.decrypt(publicKey, password));
......
}
注意:DruidDatssourceConfigクラスはspring bootのスキャンパスの下にある
}
1、導入依存
com.github.ulisesbocchio
jasypt-spring-boot-starter
2.0.0
2、その後ymlまたはpropertiesで構成する
jasypt.encryptor.password=nmyswls
これは塩の値です
3、テストクラス
@RunWith(SpringRunner.class) @SpringBootTest public class test_jiami {
@Autowired StringEncryptor stringEncryptor;
@Test public void encryptPwd() { String result = stringEncryptor.encrypt("root"); System.out.println(result); }
}
この中のパラメータはあなたのパスワードで、それから戻ってきたのは暗号化されたパスワードです:yyrqk 9 reuY 5 kScmS 3 D 9 mWQ==
4、暗号化されたパスワードをプロファイルに貼り付ける
spring.datasource.password=ENC(yyrqk9reuY5kScmS3D9mWQ==)
テストクラスは提出しないでください.
別の方法:
あなたのmaven倉庫で見つけました:D:repositoryorgjasyptjasypt1.9.2、このパッケージは暗号化されたパッケージです.
cmdはこのパッケージの下で次のコマンドを実行します.暗号化されたパスワードを返します.
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=zhang algorithm=PBEWithMD5AndDES
次のようになります.
input:データベースの明文パスワードです
password:機密の塩です
Algorithm:暗号化された方法(デフォルト)
そしてプロファイルに塩を入れてOK
補足:
デフォルトjasyptの鍵はプロファイルに置かれていますが、暗号文と鍵がプロファイルに置かれるため、私は鍵をプログラムに置きます.
public static void main(String[]args){/**構成プラス復号と鍵、構成ファイルの暗号文とは別に*/System.setProperty("jasypt.encryptor.password",ConstantValue.JASYST_ENCRYPTOR_PASWORD);
SpringApplication.run(OrderApplication.class, args); }
Springbootはdruidを使用してパスワードを暗号化することもできます
1.まずdruidのmaven依存とlog 4 j依存を加える
com.alibaba druid 1.1.10 log4j log4j 1.2.17
2.RSAパスワードの生成
java -cp C:\Users\admin\.m2\mavenrepository\com\alibaba\druid\1.1.10\druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 123456
3、プロファイル
spring.datasource.url=jdbc:mysql://localhost:3306/mysql?characterEncoding=utf8 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=admin spring.datasource.password =v3B2kpWSwA1zlGXL+T9rtcOTXZ3/PfDwckaxIPFr7VGsgZa4o8TGBJ+Qb3VyK1LJGARvaZju/E73trRMEFE28A== spring.datasource.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANZWTGLh2RCe8Loww1byCWE9X8aOSHu8j0uTtVNe/Cf8l17BNgRdy0+QzA66InWUvHHU03DGoLjS/4tOuoGzlC0CAwEAAQ==
4、データベース構成クラスの構築
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
public class DruidDatsSourceConfig {
........
@Bean
@Primary
public DataSource druidDataSource() throws Exception {
DruidDataSource datasource = new DruidDataSource();
datasource.setPassword(ConfigTools.decrypt(publicKey, password));
......
}
注意:DruidDatssourceConfigクラスはspring bootのスキャンパスの下にある
}