SpringBootプロジェクトプロファイルパスワード暗号化(jasypt)

2961 ワード

JAsyptはPBEWithMD 5 AndDES暗号化方式を用いるため、暗号化されるたびに結果が異なり、データの暗号化に適している.
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のスキャンパスの下にある
}