ホームページ > Java > &#&チュートリアル > SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法

PHPz
リリース: 2023-05-22 20:50:05
転載
1306 人が閲覧しました

1. Maven プロジェクトに依存関係を導入します

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>
ログイン後にコピー

2. 同時に、application.yml 設定ファイル

でパスワードを設定する必要があります。これは、ツールがこのパスワードを使用するためです。したがって、構成内の暗号化された文字列が同じパスワードで暗号化されていることを確認する必要があります。そうしないと、プロジェクトの開始時に暗号化が解除されません。

jasypt:
    encryptor:
        password: 123456
ログイン後にコピー

3. テストケース内の元の情報を

暗号化することができます 使用方法は非常に簡単です。簡単なデモは次のとおりです:

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class Test {
    @Autowired
    StringEncryptor encryptor;
 
    @Test
    public void getPass() {
        #直接调用加密的方法
        String mysql = encryptor.encrypt("mysql-username|mysql-password");
    }
}
ログイン後にコピー

4. 最後に、暗号化された文字列を構成ファイルに入れるだけです

上の「mysql」文字列など

url: ENC(mysql==)
username: ENC(mysql==)
password: ENC(mysql=)
ログイン後にコピー

注意してくださいto ENC( ) は固定された記述方法であり、mysql== は暗号化された対応する文字列です。

このようにして、機密情報を暗号化するふりをすることができます。ハハハ、これが私がふりをする理由です。暗号化されたパスワードは構成ファイルに平文で保存され、誰でも簡単に復号化できるため、多くの人がこの問題に戸惑うかもしれません。

はい、確かにその通りです。この種の暗号化方式では、アカウントのパスワードを一度に見られることはないとしか言​​えません。

データが暗号化されていても、暗号化は単なる誤ったセキュリティ対策であるため、ハッカーがプロジェクトへのアクセスを取得した後は意味がありません。したがって、プロジェクトとサーバーのセキュリティを確保することは最も基本的かつ重要です。

OK!OK!OK!

構成ファイルを暗号化する

開発中の学生は皆、たとえば、プロジェクトの依存関係情報やデータベース情報が通常、構成ファイルに保存されることを知っています。 file であり、全て平文なので暗号化処理が必要ですが、今回はspringboot暗号化と統合したjasyptの設定を紹介します。

まず第一に、これらは springboot プロジェクトが正常に実行できるという前提に基づいています。

ステップ 1: 図に示すように、pom ファイルに依存関係を追加します。

ここにバージョンが提供されています

<dependency>
   <groupId>com.github.ulisesbocchio</groupId>
   <artifactId>jasypt-spring-boot-starter</artifactId>
   <version>2.1.0</version>
</dependency>
ログイン後にコピー

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法

ステップ 2 : キーを生成します。

#図に示すように、ローカル Maven ウェアハウスで jasypt jar パッケージを見つけ、そのディレクトリで cmd コマンド ウィンドウを開きます。 ##実行

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test"password=test

algorithm=PBEWithMD5AndDES

ここで、「入力」はプレーンテキストのパスワードです。ここではテストを示しています。パスワードは秘密鍵で、アルゴリズムはルールです。変更しないでください。 ! ! 。実行後は、図に示すようになります。

# 簡単に説明すると、ここでの出力は暗号化された暗号文 (パスワード) です。ここでは、cmd を使用してテキストをコピーする方法を示します (最初は cmd を使用してコピーする方法がわからなかったので)。コピーしたい内容をマウスで右クリックしてマークし、選択すると、コピーできます。

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法ステップ 3: 図に示すように、springboot 構成ファイルに構成を追加します。

ここでは、application.yml ファイルとアプリケーションを使用します。プロパティファイルは次のように記述されます:jasypt.encryptor.password=test。

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法しかし、実際に使用されるのは、このノード間で値を再割り当てするためのスタートアップ クラスの System.setProperty("jasypt.encryptor.password", "demo"); であり、これは秘密キーを再度保護するのに役立ちます (もし誰かがより良い解決策を持っている場合は、時間内にメッセージを残してください。一緒に話し合うことができます。)

注: 上の図の最初のパスワードは、パスワードに対応します。 2 番目のステップの ARGUMENTS で、2 番目のパスワードは 2 番目のステップの OUTPUT の結果に対応し、図に示すようにフォームに ENC (パスワード) を追加する必要があります。

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法ステップ 4: コマンドを使用してパスワードを復号化する

コマンドを実行します

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli .JasyptPBESTringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" パスワード=テストアルゴリズム=PBEWithMD5AndDES

結果は以下のようになります:

SpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法

#最後に springboot と jasypt の統合が完了しましたが、実装は簡単そうです(笑)。ただし、注意すべき点は、設定ファイル (特に秘密キーに相当する ARGUMENTS のパスワード) を漏らさないことです。漏洩しないと、他の人が 4 番目の手順でパスワードを復号化できます。設定ファイルを次の場所に置くことをお勧めします。構成センター

以上がSpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート