「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java を使用して設定ファイル内のパスワードを安全に暗号化するにはどうすればよいですか?

Java を使用して設定ファイル内のパスワードを安全に暗号化するにはどうすればよいですか?

2024 年 11 月 17 日に公開
ブラウズ:336

How to Securely Encrypt Passwords in Configuration Files with Java?

設定ファイルのパスワードを安全に暗号化する方法

設定ファイルに保存されているパスワードの暗号化は、機密データを保護し、不正アクセスを防ぐために非常に重要です。

使用方法Java のパスワードベースの暗号化 (PBE)

パスワードを暗号化および復号化する簡単かつ効果的な方法は、Java のパスワードベースの暗号化 (PBE) を利用することです。 PBE を使用すると、PBKDF2WithHmacSHA512 などの安全なアルゴリズムを使用してパスワードからキーを導出できます。

実装手順

  1. ソルトの生成: ランダム ソルトを作成します。ブルート フォース攻撃をより困難にします。
  2. 暗号化キーの導出: SecretKeyFactory を使用して、PBKDF2WithHmacSHA512 アルゴリズムを使用してパスワードとソルトから AES キーを導出します。
  3. パスワードの暗号化: AES/CBC/PKCS5Padding アルゴリズムで暗号を初期化し、派生キーを使用してパスワードを暗号化します。
  4. 暗号化されたパスワードの保存: 暗号化されたパスワードを保存します。
  5. パスワードの復号化: ファイルから読み取るときに、同じアルゴリズムとキーで Cipher をインスタンス化し、ソルトを使用してパスワードを復号化し、パスワードを取得します。元の平文。

コード例

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;

// ...

SecretKeySpec key = createSecretKey(password.toCharArray(), salt, iterationCount, keyLength);
String encryptedPassword = encrypt(originalPassword, key);
// ...
String decryptedPassword = decrypt(encryptedPassword, key);

暗号化パスワードの保存

暗号化に使用するパスワードをどこに保存するかという課題が残ります。オプションは次のとおりです:

  • ソース ファイルの難読化: パスワードをソース コードに保存し、取得を困難にするために難読化します。
  • 提供as System Property: プログラムの起動時にパスワードをシステム プロパティとして渡します (例: -DpropertyProtectionPassword=...)。
  • Use a Key Store: 保護されたキーストアを使用します。

マスター パスワードを安全に保存するのは難しいことに注意することが重要ですが、これらの方法では、プレーンテキストを保存する場合と比較して、設定ファイル内のパスワードのセキュリティを強化できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3