springboot プロジェクトは、jasypt を使用して構成ファイル属性の暗号化と復号化を実装します。

jar パッケージをインポートする

        プロジェクトの pom ファイルに対応する jar パッケージを導入します。${jasypt.version} は、pom ファイルのプロパティ属性で定義できます。この記事で使用されているバージョンは 2.1.0 です

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>${jasypt.version}</version>
</dependency>

スタートアップクラススキャンを追加

        springboot プロジェクトのスタートアップ クラスに「com.ulisesbocchio.jasyptspringboot」を追加し、SpringBootApplication の scanBasePackages にアノテーションを付ける必要があります。これは、インポートされた jar パッケージのルート パスであり、jar パッケージにインポートされた config クラスをスキャンされた

@SpringBootApplication(scanBasePackages = {"com.erge","com.ulisesbocchio.jasyptspringboot"})
public class ErbaogeApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(ErbaogeApplication.class, args);
    }
}

設定ファイルが開いている

        構成ファイルが復号化され、有効になった後、springboot が対応する構成クラスを挿入します。true は有効であることを意味します

jasypt:
  encryptor:
    bootstrap: true

暗号化されたメッセージ

        メッセージを暗号化するには、ソルト、アルゴリズム、出力タイプなどを設定する必要があります。サンプルの暗号化方法はツールのデフォルトの暗号化アルゴリズムを提供し、ソルトは自分で定義します。最終的な出力文字列 (出力 666666 と仮定) は ENC(666666) に配置する必要があります。ENC() がデフォルト形式であり、ENC(666666) をプレーンテキストに直接置き換えます。

public static void main(String[] args) {
    String password = "j+UsiwNckWaaU=";               //要加密的(数据库/redis等)密码

    String salt = "mtOWc6";                 //加密用的salt(密钥)
    SimpleStringPBEConfig config = new SimpleStringPBEConfig();
    config.setAlgorithm("PBEWithMD5AndDES");
    config.setKeyObtentionIterations(1000);
    config.setPoolSize(1);
    if(StringUtils.isEmpty(salt)) {
        config.setSaltGenerator(new RandomSaltGenerator());
        salt = "";
    } else {
        config.setPassword(salt);                      // 加密的密钥
    }
    config.setStringOutputType("base64");
    PooledPBEStringEncryptor pooledPBEStringEncryptor = new PooledPBEStringEncryptor();
    pooledPBEStringEncryptor.setConfig(config);
    String encryptedText = pooledPBEStringEncryptor.encrypt(password);
    System.out.println("===== SALT: "+salt);
    System.out.println("===== SRC: "+password);
    System.out.println("===== ENCRYPTED: "+encryptedText);
}

関連する設定

        上記はデフォルト設定のみであり、有効にすることによってのみ使用できますが、デフォルト形式を変更したり、暗号化および復号化アルゴリズムを指定したりできる関連設定もいくつかあります。関連する構成はここでは検証されていないため、将来追加される予定です

おすすめ

転載: blog.csdn.net/u011471105/article/details/129046298