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

来源:互联网 发布:数据自动统计分析方法 编辑:程序博客网 时间:2024/04/29 12:02
想得到用户在 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');



原文:http://blog.csdn.net/heyuqi100/article/details/1424166

0 0
原创粉丝点击