验证保存在txt Java文件中的用户名和密码
当有人注册时,用户名和密码保存在.txt文件中。 下面的代码验证每一行,以检查文件中是否存在用户名和密码 但是,我不希望它以这种方式工作,因为它会得到一个带有随机密码的用户名。。。 我需要它来验证每个注册用户的用户名和密码,有什么帮助吗? (我正在使用NetBeans)验证保存在txt Java文件中的用户名和密码,java,login,Java,Login,当有人注册时,用户名和密码保存在.txt文件中。 下面的代码验证每一行,以检查文件中是否存在用户名和密码 但是,我不希望它以这种方式工作,因为它会得到一个带有随机密码的用户名。。。 我需要它来验证每个注册用户的用户名和密码,有什么帮助吗? (我正在使用NetBeans) login.txt如下所示(用户名、密码和“$$$”分隔符): 将用户名和密码放在同一行文本中。您真的应该为此使用数据库 如果不是的话,下一个最好的方法是扫描文件,并使用用户名作为密钥的映射。但是,您仍然需要相应地更新文件,以
login.txt如下所示(用户名、密码和“$$$”分隔符):
将用户名和密码放在同一行文本中。您真的应该为此使用数据库 如果不是的话,下一个最好的方法是扫描文件,并使用用户名作为密钥的映射。但是,您仍然需要相应地更新文件,以防程序崩溃 这个
if (NameTextField.getText().contentEquals(record))
isFound = true;
if (jPasswordField.getText().contentEquals(record))
isFound = true;
这意味着,如果在文本文件中找到用户名或密码,它将返回true。我很确定你不想这么做
最好使用两个标志(foundUser
和foundPassword
),您可以根据需要设置它们,然后返回foundUser和&foundPassword
根据反馈更新
在检查用户名/密码值时,您需要确保您尝试匹配的密码与用户匹配,例如
if (foundUser && jPasswordField.getText().contentEquals(record)) {
foundPassword = true;
break; // No need to compare any more details...
} else {
foundUser = false;
}
if (NameTextField.getText().contentEquals(record)) {
foundUser = true;
}
已更新
作为补充说明,你真的不应该使用它,因为这是一个安全风险。您应该使用和来比较它们
这显然也会引起如何从文本文件中读取数据的问题
(请注意,在文本文件中包含用户名/密码可能会带来更大的安全风险:p)用户名和密码不能使用相同的布尔值。一旦它找到一个,它将被设置为true,如果它找到另一个(这是错误的,它们都需要在那里!) 我会这样设置:
private String getUsername(String filename) {
// 1. Open up the file.
// 2. Return the String.
}
private String getPassword(String filename) {
// Basically the same, but return the password.
}
然后,在iCustomer()中,您可以执行以下操作:
String username = getUsername(filename);
String password = getPassword(filename);
return (username != null) && (password != null); // makes sure they're both there.
(另外,你真的不应该将其存储在未加密的文本文件中。这是一个非常糟糕的主意,如果你想成为一名程序员,你需要学习这一点。)正如其他答案所指出的,你应该考虑很多问题:
joe:fjckdsoij48738423
marian:fjccoekrnvn3iernci3en
mrbean:fjd84jfn4u48fu4nf
当您想要检查密码时(从第1点看,密码的散列),您可以逐行读取密码文件。在第一个“:”字符出现时拆分行以查找用户名和密码。与用户提供的数据进行比较。该解决方案虽然有效,但避开了代码中的逻辑错误,也不算太麻烦。但即使进行了此更正,您也在检查所有用户名中的用户名和所有密码中的密码。但您并没有检查它们是否相互对应other@manu-fatto我希望更新能修复它-谢谢你的关注!非常感谢你!我让它工作了,现在需要一些调整,但是非常好的帮助!:D能否显示文件login.txt的外观?在奇数行中,用户名和密码在偶数行中?您是否考虑过更改文件格式?我没有考虑其他选项,还有哪些其他选项?最好的格式是将用户名和密码保持在同一行,如Unix密码文件:Joe:656451asda\n Robert:123456hbb
String username = getUsername(filename);
String password = getPassword(filename);
return (username != null) && (password != null); // makes sure they're both there.
joe:fjckdsoij48738423
marian:fjccoekrnvn3iernci3en
mrbean:fjd84jfn4u48fu4nf