Java代码检查字母和数字的密码?
第一个帖子是Confussamagin。我的任务是创建一个密码提示程序。需要检查密码中是否包含至少一个数字和一个字母。此外,密码长度必须介于6到10之间 我的问题是试图找出如何查看密码中是否存在数字和字母。在检查密码区域,我不确定从哪里开始。我不知道如何看它是否有一个字母和一个数字。我知道如何使用for语句进行计数和检查,但它所做的只是检查是否包含所有字母或数字Java代码检查字母和数字的密码?,java,authentication,passwords,Java,Authentication,Passwords,第一个帖子是Confussamagin。我的任务是创建一个密码提示程序。需要检查密码中是否包含至少一个数字和一个字母。此外,密码长度必须介于6到10之间 我的问题是试图找出如何查看密码中是否存在数字和字母。在检查密码区域,我不确定从哪里开始。我不知道如何看它是否有一个字母和一个数字。我知道如何使用for语句进行计数和检查,但它所做的只是检查是否包含所有字母或数字 import java.util.Scanner; class Password { public static void
import java.util.Scanner;
class Password {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//------ENTER A USERNAME
System.out.println("Welcome please enter your username and password.");
System.out.print("Username >>");
input.nextLine();
//------PASSWORD AUTHENTICATION BEGIN
String password = enterPassword();
while ( !checkPassword(password) ) {
System.out.println("Password must be 6 - 10 characters long!");
password = enterPassword();
}
//------PASSWORD VERIFY
String passwordverify = enterPassword();
while (!password.equals(passwordverify)){
System.out.println("ERROR - Passwords DO NOT MATCH Re-Enter Passwords Again");
password = enterPassword();
}
//------ACCEPT PASSWORD
System.out.println("Username and Password Accepted!");
}
//--ENTER PASSWORD STATEMENT
public static String enterPassword(){
String password;
Scanner input = new Scanner(System.in);
System.out.print("Password >>");
password = input.nextLine();
return password;
}
//--BOOLEAN CHECK PW
public static boolean checkPassword(String password){
int length;
length = password.length();
if (length < 6 || length > 11){
return false;
}
for (int i = 0; i < password.length();i++){
if (!Character.isLetter(password.charAt(i)))
return false;
}
return true;
}
}
import java.util.Scanner;
类密码{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//------输入用户名
System.out.println(“欢迎输入您的用户名和密码”);
系统输出打印(“用户名>>”;
input.nextLine();
//------密码验证开始
字符串密码=输入密码();
而(!checkPassword(password)){
System.out.println(“密码长度必须为6-10个字符!”);
密码=输入密码();
}
//------密码验证
字符串passwordverify=enterPassword();
而(!password.equals(passwordverify)){
System.out.println(“错误-密码不匹配,请重新输入密码”);
密码=输入密码();
}
//------接受密码
System.out.println(“接受用户名和密码!”);
}
//--输入密码语句
公共静态字符串enterPassword(){
字符串密码;
扫描仪输入=新扫描仪(System.in);
系统输出打印(“密码>>”;
password=input.nextLine();
返回密码;
}
//--布尔校验
公共静态布尔校验密码(字符串密码){
整数长度;
长度=密码。长度();
如果(长度<6 | |长度>11){
返回false;
}
对于(int i=0;i
不写作业。。。。您走对了您必须确保您的字母计数和数字计数都至少为1。您的代码只缺少变量计数器。保留两个计数器:一个用于计数字母,一个用于计数数字,并在checkPassword
内的两个for循环结束时执行if
测试,以检查两个计数器是否至少都是一个
另一种方法是使用正则表达式。请参阅此链接:
为什么您会强制用户使用字母和数字,同时将其密码长度限制为10?存储散列的密码(就像您应该存储的那样),长度甚至无关紧要。可能的重复是为了分配,因此存储散列的密码在这里不是问题:S@GolezTrol,出于某种奇怪的原因,这实际上是一个非常真实的世界,有密码的系统。我从来都不明白需要将密码限制在一定的字符数(特别是非常低的字符数),但它一直存在。有什么帮助吗?我不明白。我非常困惑。它不允许我比较布尔值中计数的两个整数