从Java 1.2开始,由于“出于安全原因”弃用了JPasswordField.getText(),从而增加了getPassword()方法的使用,“以提高安全性”。

但是,通过分析堆转储(JPasswordField),我至少能够获得存储在JPasswordField instance -> model -> s -> array中的密码。

那么JPasswordField.getPassword()如何帮助保护密码?

最佳答案

好吧,documentation指出:

为了提高安全性,建议在使用后通过将每个字符设置为零来清除返回的字符数组。

但是,当然,如果您使用getText方法,则会获得一个不可变的String,因此您无法执行相同的建议。

09-25 21:02