<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
でパスワードを設定する必要があります。これは、ツールがこのパスワードを使用するためです。したがって、構成内の暗号化された文字列が同じパスワードで暗号化されていることを確認する必要があります。そうしないと、プロジェクトの開始時に暗号化が解除されません。
jasypt: encryptor: password: 123456
暗号化することができます 使用方法は非常に簡単です。簡単なデモは次のとおりです:
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration public class Test { @Autowired StringEncryptor encryptor; @Test public void getPass() { #直接调用加密的方法 String mysql = encryptor.encrypt("mysql-username|mysql-password"); } }
上の「mysql」文字列など
url: ENC(mysql==) username: ENC(mysql==) password: ENC(mysql=)
注意してくださいto ENC( ) は固定された記述方法であり、mysql== は暗号化された対応する文字列です。
このようにして、機密情報を暗号化するふりをすることができます。ハハハ、これが私がふりをする理由です。暗号化されたパスワードは構成ファイルに平文で保存され、誰でも簡単に復号化できるため、多くの人がこの問題に戸惑うかもしれません。
はい、確かにその通りです。この種の暗号化方式では、アカウントのパスワードを一度に見られることはないとしか言えません。
データが暗号化されていても、暗号化は単なる誤ったセキュリティ対策であるため、ハッカーがプロジェクトへのアクセスを取得した後は意味がありません。したがって、プロジェクトとサーバーのセキュリティを確保することは最も基本的かつ重要です。
OK!OK!OK!
開発中の学生は皆、たとえば、プロジェクトの依存関係情報やデータベース情報が通常、構成ファイルに保存されることを知っています。 file であり、全て平文なので暗号化処理が必要ですが、今回はspringboot暗号化と統合したjasyptの設定を紹介します。
まず第一に、これらは springboot プロジェクトが正常に実行できるという前提に基づいています。
ここにバージョンが提供されています
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test"password=test
algorithm=PBEWithMD5AndDES# 簡単に説明すると、ここでの出力は暗号化された暗号文 (パスワード) です。ここでは、cmd を使用してテキストをコピーする方法を示します (最初は cmd を使用してコピーする方法がわからなかったので)。コピーしたい内容をマウスで右クリックしてマークし、選択すると、コピーできます。ここで、「入力」はプレーンテキストのパスワードです。ここではテストを示しています。パスワードは秘密鍵で、アルゴリズムはルールです。変更しないでください。 ! ! 。実行後は、図に示すようになります。
ステップ 3: 図に示すように、springboot 構成ファイルに構成を追加します。
ここでは、application.yml ファイルとアプリケーションを使用します。プロパティファイルは次のように記述されます:jasypt.encryptor.password=test。しかし、実際に使用されるのは、このノード間で値を再割り当てするためのスタートアップ クラスの System.setProperty("jasypt.encryptor.password", "demo"); であり、これは秘密キーを再度保護するのに役立ちます (もし誰かがより良い解決策を持っている場合は、時間内にメッセージを残してください。一緒に話し合うことができます。)
注: 上の図の最初のパスワードは、パスワードに対応します。 2 番目のステップの ARGUMENTS で、2 番目のパスワードは 2 番目のステップの OUTPUT の結果に対応し、図に示すようにフォームに ENC (パスワード) を追加する必要があります。ステップ 4: コマンドを使用してパスワードを復号化する
コマンドを実行します
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli .JasyptPBESTringDecryptionCLI input="nhyL4CzSQv/aPxoe7TzpOQ==" パスワード=テストアルゴリズム=PBEWithMD5AndDES結果は以下のようになります:
#最後に springboot と jasypt の統合が完了しましたが、実装は簡単そうです(笑)。ただし、注意すべき点は、設定ファイル (特に秘密キーに相当する ARGUMENTS のパスワード) を漏らさないことです。漏洩しないと、他の人が 4 番目の手順でパスワードを復号化できます。設定ファイルを次の場所に置くことをお勧めします。構成センター
以上がSpringBoot が構成ファイルの SQL アカウントのパスワードを暗号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。