Junior — Middle
Jak bezpiecznie przechowywać i odzyskiwać informacje o haśle po jego wprowadzeniu?
sobes.tech AI
Odpowiedź od AI
Aby bezpiecznie przechowywać i odczytywać hasło po jego wprowadzeniu w Java, zaleca się:
- Używanie klasy
char[]zamiastStringdo przechowywania hasła w pamięci, ponieważ łańcuchy są niezmienne i pozostają dłużej w pamięci. - Po użyciu czyścić tablicę hasła, na przykład wypełniając ją zerami.
- Nigdy nie przechowywać hasła w postaci jawnego tekstu w pamięci lub logach.
- Do przechowywania haseł w bazie danych używać haszowania z solą (np. BCrypt, PBKDF2).
Przykład bezpiecznego pobierania hasła z konsoli:
import java.io.Console;
Console console = System.console();
if (console != null) {
char[] password = console.readPassword("Wprowadź hasło: ");
// Użyj hasła
// Czyszczenie tablicy po użyciu
java.util.Arrays.fill(password, ' ');
} else {
System.out.println("Konsola niedostępna");
}