java - 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。
解决方案
你可以通过使用正则表达式来做到这一点,但我不知道怎么做。但这应该有效:
这是您验证密码的地方: 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;
}
推荐阅读
- mysql - 如何查找在 Mysql 中执行失败事务的所有语句
- psutil - psutil 和 du 给出不同的输出
- python - 选择在单个模块中对方法进行 BC 重大更改的方法
- docker - docker vscode 操作超时
- tableau-api - 我将我的运行总计除以某个值,但总计不正确
- c# - 如何保存这些随机生成的项目
- android - 当视图的父级有边距时,Android View 的 offsetLeftAndRight 和 offsetTopAndBottom 不起作用
- uwp - 有没有办法在没有事件令牌的情况下删除 UWP 按钮单击处理程序?
- selenium - 尝试单击 Cookie 时出现 Selenium TimeoutException 同意
- r - 对于一组固定的模式,如何检测字符串中是否存在模式?