”密码强度判断“第一个自己写的小东西

JAVA学习网 2019-03-30 12:46:02
import java.util.Scanner;

public class Texi {
 public static void main(String[] args) {
 //检查密码强度,密码最长为12个字符。规则为:长度小于等于6且只含有数字字符的强度为弱;长度超过10且同时包含数字、字母、和数字字母以外的字符为强;其它为中。  
  Scanner input=new Scanner(System.in);
  String password;
  //判定条件的元素
  char[] letter=new char[62];
  for (int i=0; i<26; i++){
   letter[i]=(char)(65+i);
   letter[i+26]=(char)(97+i);
   if(i<10) {
    letter[i+52]=String.valueOf(i).charAt(0);;
   }
  }
  String dege="**************************";
  System.out.println(dege+"\n**欢迎使用密码测试器V1.0**");
  boolean star=true;
  while(star) {
   System.out.print(dege+"\n请输入密码(0退出):\n");
   password=input.nextLine().replace(" ", "");
   char[] charArray;
   charArray=password.toCharArray();
   if(charArray.length>12||charArray.length==0) {
    System.err.println("密码越界!");
    continue;
   }
   if(charArray[0]=='0'&&charArray.length==1) {
    System.out.print("程序结束!");
    break;
   }  
   //length=0时长度小于等于6,length=2时长度大于10
   int length=-1;
   if(charArray.length<=6) {
    length=0;
   }else if(charArray.length>10) {
    length=2;
   }else {
    length=1;
   }  
   //判断是否有其他字符
   boolean number=true;
   boolean term=false;
   for(char j:charArray) {
    term=false;
    for(int i=0;i<letter.length;i++) {
      if((letter[i])==j) {
       if(i<52) {
        number=false;
       }     
       term=true;
       break;
      } 
    }
    if(!term) {
     number=false;
     break;
    }  
   }
   String strength="";
   if(number==true||length==0) {
    strength="弱";
   }else if(term==false&&length==2) {
    strength="强";
   }else {
    strength="中等";
   }
   System.out.println("密码强度为:"+strength);   
  }
  input.close();
 } 
}
阅读(2432) 评论(0)