Attualmente sto imparando JavaFX e sono un po 'confuso sul fatto che il Campo password in JavaFX non ha un metodo che restituisce un array di byte o anche di byte della password. Invece devo usare getText() che restituisce una stringa.Perché JavaFx PasswordField restituisce il contenuto come una stringa?
Come si può leggere here swing ha deciso di contrassegnare il metodo getText() come depredato e dice al programmatore di utilizzare invece getPassword(), che restituisce un array di caratteri.
Se correttamente corretto, gli array di caratteri sono molto più sicuri perché è possibile cancellarli completamente dalla RAM impostando tutti i valori su 0. Quindi perché Oracle ha deciso di utilizzare le stringhe in JavaFx? C'è un nuovo modo per rimuovere le stringhe dall'heap?
EDIT: Per quanto ne so, le password di char sono di gran lunga più risparmiate perché possiamo eliminarle quando vogliamo (sovrascrivendole), il che non è il caso delle stringhe.
Sembra che tu stia dicendo che non esiste il metodo 'getPassword()', solo un metodo 'getText()', che hai letto è deprecato di recente. Stai usando una lib JavaFX obsoleta? Questo potrebbe spiegare perché non vedi quel metodo disponibile – mmcrae
@mmcrae No, il campo password in JavaFX 8 non ha il metodo getPassword, come puoi vedere qui: [link] (https://docs.oracle.com/javase/8 /javafx/api/toc.htm) – Brotcrunsher
Non direi che i char array sono ** molto ** più sicuri. Stai lavorando nello spazio di memoria della VM indipendentemente dal tipo di dati. Dai un'occhiata a questo [post correlati] (http://stackoverflow.com/questions/29368926/safe-way-to-get-password-from-passwordfield-in-javafx) e i suoi commenti per maggiori informazioni. – OttPrime