当前位置: 首页 > 知识库问答 >
问题:

无法显示密码强度

萧焱
2023-03-14

对于我的密码强度检查器,我无法显示从我输入的密码获得的分数。下面是代码,问题一直显示在我的代码底部:

import java.lang.Thread.State;
import java.util.Scanner;


public class PasswordUtils {

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Password to test: ");
    String pw = sc.nextLine();

    if (containsUpperCase(pw)) {
        System.out.println("   ...contains an upper case letter");
    }
    if (containsLowerCase(pw)) {
            System.out.println("   ...contains an lower case letter");
    }
    if (containsDigit(pw)) {
                System.out.println("   ...contains a number");
    }
    if (containsSpecial(pw)) {
        System.out.println("   ...contains a number");
    }
    sc.close();

}

/***确定给定字符串是否包含大写字母*@param s要检查的字符串*@return true当且仅当s包含大写字母*/public static boolean containsUpperCase(string s){for(int letter=0;letter=0){return true;}}return false;}

public static boolean containsLowerCase(String s) {
        for (int letter=0; letter<s.length(); letter++) {
         if ("abcdefghijklmnopqrstuvwxyz".indexOf(s.charAt(letter))>=0) {
                        return true;
        }
    }
    return false;
}

public static boolean containsDigit(String s) {
    for (int letter=0; letter<s.length(); letter++) {
     if ("1234567890".indexOf(s.charAt(letter))>=0) {
                    return true;
    }
}
return false;

}

public static boolean containsSpecial(String s) {
    for (int letter=0; letter<s.length(); letter++) {
     if ("!@#$%^&*()_-+=[]{};:,.<>?/|".indexOf(s.charAt(letter))>=0) {
                    return true;
    }
}
return false;

}

/**
 * Determine the actual strength of a password based upon various tests
 * @param s the password to evaluate
 * @return the strength (on a 1 to 5 scale, 5 is very good) of the password
 */
public static int score(String s) {
      int pwscore = 0;

      //if it contains one digit, add 1 to total score
      if( s.matches("(?=.*[0-9]).*") )
          pwscore += 1;

      //if it contains one lower case letter, add 1 to total score
      if( s.matches("(?=.*[a-z]).*") )
          pwscore += 1;

      //if it contains one upper case letter, add 1 to total score
      if( s.matches("(?=.*[A-Z]).*") )
          pwscore += 1;    

      //if it contains one special character, add 1 to total score
      if( s.matches("(?=.*[~!@#$%^&*()_-]).*") )
          pwscore += 1;

      System.out.println("The password strength is " + pwscore);

    return pwscore;    // Right now, all passwords stink!!!
}

}

共有1个答案

周飞
2023-03-14

而不是重新实现测试,你说你已经有了功能代码-我更喜欢这样,比如-

public static int score(String pw) {
    int score = 1; // <-- 1 to 5...
    if (containsUpperCase(pw)) {
        score++;
    }
    if (containsLowerCase(pw)) {
        score++;
    }
    if (containsDigit(pw)) {
        score++;
    }
    if (containsSpecial(pw)) {
        score++;
    }
    return score;
}

然后调用它并在main中打印结果,如下所示

System.out.println("The score is " + score(pw));
 类似资料:
  • 这是完整的: 无法显示应用程序bundleID的自动强密码:com.ckbusiness.由于错误的愿望列表:无法识别调用应用程序的进程。在应用程序的应用程序标识符权限中检查teamID和bundleID 我在这里错过了什么??

  • 当我尝试注册新用户时,我的注册页面出现问题。我将用户名和密码内容类型更改为以下内容: 我成功地建立了网站和应用程序之间的关联,并且工作正常。在iCloud keychain中保存密码也可以正常工作,但当我尝试实现自动强密码时,我发现了这个错误。 还有钥匙链共享。 我知道这个错误是不言自明的,但在2018年WWDC第204次会议上,他们什么也没说?

  • 对于一个小的编码项目,我在iPhone上手动安装了我自制的颤振应用程序。此应用程序有一个注册页面,用户可以在其中填写电子邮件和密码以注册该应用程序。为了启用iOS自动强密码,我使用了Flatter AutofillGroup小部件,并向相应的文本字段提供了相应的AutoFillHights: 当我运行我的手机上的应用程序,自动提示工作作为预期的TextField,但在点击密码TextField我得

  • 我在远程服务器上有一个git repo,并使用ssh和密码身份验证来克隆、拉、推。从命令行,一切正常。 但是在 vscode 中,当我尝试从远程存储库拉取或推送时,没有显示密码提示。Vscode似乎在等待什么,但什么也没发生。这是一个错误,还是我做错了什么? 我想在linux上使用visualstudio代码作为git客户端。 从命令行: 在vscode中:

  • 我正在使用。我刚刚检查了我的编码类,发现它的字节代码显示了我的加密密码在类中的原样。我真的开始担心我所有数据的安全性。如果有人黑了我的类,那么我的数据会发生什么。为什么java类不将字符串名和值转换为字节码?

  • 本文向大家介绍js判断密码强度的方法,包括了js判断密码强度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js判断密码强度的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。