2011-02-03 2 views
0

첫 번째 게시물은 confusamagin이었습니다. 나의 임무는 암호 프롬프트 프로그램을 만드는 것이다. 암호가 적어도 하나의 숫자와 하나의 문자가 있는지 확인하려면 암호를 검사해야합니다. 또한 암호 길이는 6 - 10 사이 여야합니다.Java 코드 문자 및 숫자의 암호를 확인 하시겠습니까?

내 문제는 숫자와 문자가 암호가 있는지 확인하는 방법입니다. 비밀 번호 확인 영역에서 나는 정말로 어디에서 시작해야할지 모르겠습니다. 문자와 숫자가 하나 인 지 확인하는 방법을 모르겠습니다. 중 하나를 수행하는 방법이나 for 문을 사용하여 계산하고 확인하는 방법을 알고 있지만 모든 문자 또는 모든 숫자가 포함되어 있는지 확인하는 것입니다. 당신의 숙제를 작성하지 않고

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; 
     } 

} 
+0

왜 사용자가 문자 * 및 * 숫자를 사용하도록 강요합니까? 동시에 암호 길이를 10으로 제한 하시겠습니까? 비밀번호 해시를 보관해야합니다 (꼭해야 함). 길이는 중요하지 않습니다. – GolezTrol

+0

[Java 코드 비밀번호 및 문자 확인 암호]가 중복 될 수 있습니다. (http://stackoverflow.com/questions/4892142/java-code-check-password-for-letter-and-digit) – trashgod

+0

이것은 과제물입니다 따라서 암호 해싱을 저장하는 것은 여기에 문제가되지 않습니다. S – allencoded

답변

1

.... 올바른 방향으로 가고있는 것입니다 당신이 편지를 당신의 수, 숫자의 당신의 수가 모두 1 이상

+0

도움이 필요하십니까? 나는 그것을 얻지 못하고있다. 나는 혼란 스럽다. – allencoded

+0

부울 내에서 카운트의 두 int를 비교해 보겠습니다. – allencoded

+0

@allencoded - 마지막 코멘트는 이해가되지 않습니다. –

1

귀하의 코드 있는지 확인해야 변수 카운터가 누락되었습니다. 두 개의 카운터를 유지하십시오. 하나는 숫자를 계산하고 다른 하나는 숫자를 계산하고 checkPassword 내부의 루프에 대해 두 카운터의 끝에 모두 하나 이상의 카운터가 있는지 확인하기 위해 테스트를 수행하십시오.

정규식을 사용하는 대신 이 링크를 참조하십시오 : http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

관련 문제