ソース コードでパスワードを安全に処理する
基本認証を使用して RESTful API にアクセスするコンテキストでは、ユーザー名とパスワードを平文で保存することは危険です。セキュリティリスク。セキュリティを強化するには、次の推奨事項を考慮してください。
1.パスワードを文字配列に変換
プレーン テキストのパスワードを文字配列に置き換えます。これにより、null に設定された後もデータを保持する String オブジェクトの使用が防止されます。
2.認証情報を暗号化して一時的に復号化する
認証情報を保存する前に、Triple Data Encryption Standard (3DES) などのアルゴリズムを使用して暗号化します。認証プロセス中にのみ復号化してください。
3.認証情報を外部に保存する
認証情報のハードコーディングを避けます。代わりに、設定ファイルやデータベースなどの一元的な場所に保存してください。ファイルを保存する前に暗号化し、オプションでファイル自体に別の暗号化層を適用します。
4.送信の保護
トランスポート層セキュリティ (TLS) またはセキュア ソケット レイヤ (SSL) を使用して、送信プロセスを保護します。
5.コードの難読化
コンパイルされたコードに難読化技術を適用して、機密データを隠します。
パスワードの暗号化と復号化の例:
次のコード サンプルは、上記で概説した最初と 2 番目のステップを示しています:
import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; public class PasswordEncryptionExample { private static final char[] PASSWORD = "Unauthorized_Personel_Is_Unauthorized".toCharArray(); private static final byte[] SALT = { (byte) 0xde, (byte) 0x33, (byte) 0x10, (byte) 0x12, (byte) 0xde, (byte) 0x33, (byte) 0x10, (byte) 0x12 }; public static void main(String[] args) throws Exception { String password = "LetMePass_Word"; char[] passwordArray = password.toCharArray(); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey key = keyFactory.generateSecret(new PBEKeySpec(PASSWORD)); Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); pbeCipher.init(Cipher.ENCRYPT_MODE, key, new PBEParameterSpec(SALT, 20)); byte[] encryptedPassword = pbeCipher.doFinal(passwordArray); // Cleanup password data sources Arrays.fill(passwordArray, (char) 0); Arrays.fill(encryptedPassword, (byte) 0); // Decrypt the encrypted password pbeCipher.init(Cipher.DECRYPT_MODE, key, new PBEParameterSpec(SALT, 20)); byte[] decryptedPassword = pbeCipher.doFinal(encryptedPassword); String decryptedPasswordString = new String(decryptedPassword); System.out.println("Decrypted password: " + decryptedPasswordString); } }
以上がソースコード内のパスワードを安全に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。