欢迎光临
我们一直在努力

Java Doc 建议不要使用 JPasswordField.getText()

想得到用户在 Java Swing 中的 JPasswordField 控件中输入的密码内容,应该使用 JPasswordField.getPassword() ,而不是 JPasswordField.getText() 。因为安全的原因,JavaDoc 中就是如此建议的:

For security reasons, this method is deprecated. Use the getPassword method instead.

getPassword() getText() 的差别在于 getPassword 返回的是一个 char[] ,getText() 返回一个 String 。

咋一想,要是有人想查看内存( 包括物理主存与交换文件 )里的内容,String 与 char[] 在安全上是没什么区别的。

但是两者最大的区别是不可变性。 String 是一个不可变的对象。一旦被分配内存空间,String 里的字符就不可改变了。如此,这个 String 对象还会在你使用完它后,还会内存中停留上一段时间。然而 char[] 就不一样了,你可以在使用完这个字符数组后,把所有的字符改成 ‘/0’。

import java.util.Arrays

Arrays.fill( txtpassword,'\0');

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » Java Doc 建议不要使用 JPasswordField.getText()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址