首页 > 解决方案 > Java Swing注册表单密码弱点情况

问题描述

我想用java做一个注册系统。这是一个非常好的进展。我只有一个具体问题。密码弱点。我做到了,密码必须长于 8 个字符

if(password.getText().length() > 8) { error message }

我也提出了这样的条件:

if(... < 8 || !(password.getText().contains("1"))) { error message }

但是在这种情况下,它只接受密码,例如您的密码:asdfghjk1 所以我尝试了很多 || 的条件 条件如 !..contains("2")..|| !..包含(“9”)

但在这些条件下,它仅在密码为:123456789 时才有效。但我真正想做的是一个超过 8 个字符的密码,至少包含一个大写字母和一个数字。有没有办法做到这一点?顺便说一句,我使用 Java swing。

标签: javaswingpasswordsconditional-statementsregistration

解决方案


你可以通过使用正则表达式来做到这一点,但我不知道怎么做。但这应该有效:

这是您验证密码的地方: String passwordString = password.getText();

if (passwordString.Length() > 8 && checkCapital(passwordString) && checkDigit(passwordString)){ valid password }

else { error message }

这是我使用 ascii 代码的 checkCapital:

private static boolean checkCapital(String string) {
    for (char c : string.toCharArray()) {
        int code = (int) c;
        if (code >= 65 && code <= 90) 
            return true;
    }
    return false;
}

这是校验位:

private static boolean checkDigit(String string) {
    for (int i = 0; i < 10; i++) {
        if (string.contains("" + i))
            return true;
    }
    return false;
}

推荐阅读