Przechowywanie haseł w Javie

0

Hej,
Powiecie mi jak to jest z przechowywaniem haseł w javie? Mam mikroserwis, który pobiera sobie zakodowane hasła z propertisów, odkodowuje je i używa. Jest kilka haseł (do połączenia z db, ldapem itp).
Aktualnie pobieram z propertisów Stringi (zakodowane hasła), następnie je odkodowuje (do postaci odkodowanego textu) i używam. Z tego co wiem hasla powinno przechowywać się w tablicy charów (wytłumaczone m.in tutaj: https://www.geeksforgeeks.org/use-char-array-string-storing-passwords-java/)
Jednak większość zewnętrznych klas wymagających podania haseł (połączenie z ldapem, bazą..) wymaga podania parametru z hasłem jako String.
Jaka jest w takim przypadku dobra praktyka? Wczytywać hasła z propertisów i dekodować je do tablicy charów, a przy ustawianiu połączenia np. z bazą - używać String.valueOf(..) ?

1

Po prawdzie jak wymaga Stringa to nie masz wyjścia.String.valueOf to max co możesz zrobić.
Wiele bibliotek tak ma. Z różnych powodów. Czasem i tak wszystko leci przez sieć, wpada do XML czy gdzie tam jeszcze i się odpuszcza, bo i tak nie ma żadnego bezpieczeństwa :-(

Btw. ta tablica char[] też nie jest idealna, bo może niechcący ją położyć kompaktujący garbage collector (jeśli nie czyści odzyskanej pamięci, a nie kojarzę, żeby jakikolwiek czyścił). Tym niemniej (jak w artykule) char[] i tak jest lepszy od String.

1

Ja słyszałem, że najlepsza metoda to byte[]

1 użytkowników online, w tym zalogowanych: 0, gości: 1