Встречается на собеседованиях • сегодня

Хэшировал ли пароли в Java Security

В Java для хэширования паролей рекомендуется использовать MessageDigest или специализированные библиотеки вроде BCrypt, SCrypt, PBKDF2.

Пример с MessageDigest (SHA-256):

java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class PasswordHasher {
    public static String hashPassword(String password) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        byte[] hashedBytes = md.digest(password.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : hashedBytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }
}

Но лучше использовать BCrypt (через библиотеку spring-security-crypto):

java
import org.springframework.security.crypto.bcrypt.BCrypt;

String hashed = BCrypt.hashpw(password, BCrypt.gensalt());

Важно:

  • SHA-256 без соли уязвим к rainbow-таблицам.
  • BCrypt автоматически добавляет соль и устойчив к brute-force.
  • Никогда не храните пароли в открытом виде!
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы