我正在使用java框架创建一个小项目。 在登录框架中,我收到用户的用户名和密码。 检查有效性后,我必须将此用户名和密码传递给另一个框架的构造函数(称为 UserFrame)。 我作为字符串传递,它似乎不安全。 java中有没有一种好的方法可以实现将密码从一个框架传递到另一个框架?
String user=userField.getText();
String pwd= passField.getText();
if (user.equals("username") && pwd.equals("password"))
Home x= new Home(user,pwd);
最佳答案
请注意,JPasswordField#getPassword()
返回char[]
,因此您可以按照提供给您的方式处理密码(假设您使用的是 JPasswordField ):作为字符数组。要么以某种方式对其进行散列并传递散列码。
编辑
您声明:
Yes I am using a JPasswordField. However I used getText() for simplicity as it returns a String. Does the character array guarentee additional security than a string when being passed from one frame to another?
不要使用 getText()
,因为您提出问题的原因是:您根本不应该将密码作为字符串处理,因为这会更容易被发现。查看 JPasswordField 类的 API,您会发现 getText()
由于同样的原因已被弃用。作为一般规则,您不应使用已弃用的方法。
编辑2 您声明:
Ok. Now I understand it. But how can a password be passed from one frame to another? Does passing a char[] guarantee security?
据我所知,没有什么可以保证安全性,但是将密码作为字符数组处理确实可以提高安全性。使用 char[] 构造函数参数或采用 char[] 参数的 setter 方法。
关于java - 通过登录传递密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164276/