Sobes.tech
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[] zamiast String do 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");
}