Java でのパスワード ハッシュ
パスワードのハッシュは、機密性の高いユーザー データを保護するための重要なセキュリティ対策です。 Java では、組み込みクラスや外部ライブラリの使用など、パスワード ハッシュを実現する方法がいくつかあります。
PBKDF2 (パスワードベースのキー導出関数 2)
Java でのパスワード ハッシュ化に最も推奨されるアルゴリズムの 1 つは PBKDF2 です。パスワードとソルト (ランダム値) を組み合わせて、一意で安全なハッシュを生成します。 Java Security Cryptography Extension (JCE) ライブラリを使用したコード例を次に示します。
import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import java.security.SecureRandom; import java.util.Base64; public class PBKDF2PasswordHashing { public static String hashPassword(String password, String salt) { try { // Generate a random salt for increased security SecureRandom random = new SecureRandom(); byte[] saltBytes = new byte[16]; random.nextBytes(saltBytes); // Create a PBEKeySpec using the password and salt PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), saltBytes, 65536, 128); // Generate the hash SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); byte[] hash = factory.generateSecret(spec).getEncoded(); // Base64 encode the salt and hash for storage String encodedSalt = Base64.getEncoder().encodeToString(saltBytes); String encodedHash = Base64.getEncoder().encodeToString(hash); // Concatenate the salt and hash and return it as a string return encodedSalt + "$" + encodedHash; } catch (Exception e) { throw new RuntimeException("Error hashing password: " + e.getMessage(), e); } } }
Bcrypt
Java でよく使用されるもう 1 つのパスワード ハッシュ アルゴリズムは Bcrypt です。これは、ソルトとラウンドの組み合わせを使用して一意のハッシュを生成する一方向関数です。 BCrypt ライブラリは、Java の実装を提供します。
import org.mindrot.jbcrypt.BCrypt; public class BCryptPasswordHashing { public static String hashPassword(String password, String salt) { return BCrypt.hashpw(password, BCrypt.gensalt(12)); } }
結論
ユーザー データを保護し、不正アクセスを防止するには、パスワードのハッシュ化が不可欠です。 PBKDF2 や Bcrypt などの堅牢なアルゴリズムを使用することで、開発者は安全なパスワード ストレージを実装し、パスワード違反やハッキングの試みからアプリケーションを保護できます。
以上がPBKDF2 と Bcrypt を使用して Java でパスワードを安全にハッシュする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。