【问题标题】:Java Web Application Create User, Mitigate weak passwordsJava Web 应用程序创建用户,缓解弱密码
【发布时间】:2016-07-19 17:26:38
【问题描述】:
我正在创建一个 java Web 应用程序,以使用户能够创建公平的强凭据,我想防止他们输入弱密码。我想遵循它的基本规则,它必须包含至少八个字符和至少一个数字和一个符号。我将不胜感激,非常感谢!
【问题讨论】:
标签:
java
jsp
web-applications
user-accounts
【解决方案1】:
两种解决方案:
1.) 您可以对密码要求使用正则表达式,并将用户输入的密码与该表达式进行比较,如果密码模式与正则表达式匹配,则可以让用户注册,否则会显示错误。
2.) 当用户输入密码时,您可以调用一个函数来检查是否:
一种。密码至少包含一个数字。
湾。密码至少包含一个特殊字符。
C。用户输入的密码长度是否大于最小长度等...
此函数将根据是否接受密码返回真或假。
希望对你有所帮助。
【解决方案2】:
你可以通过这个java代码检查用户输入的密码,
public static boolean isValidPassword(String userEnteredPassword) {
boolean atleastOneUpper = false;
boolean atleastOneLower = false;
boolean atleastOneDigit = false;
if (userEnteredPassword.length() < 8) { // If its less then 8 characters, its automatically not valid
return false;
}
for (int i = 0; i < userEnteredPassword.length(); i++) { // Lets iterate over only once. Saving time
if (Character.isUpperCase(userEnteredPassword.charAt(i))) {
atleastOneUpper = true;
}
else if (Character.isLowerCase(userEnteredPassword.charAt(i))) {
atleastOneLower = true;
}
else if (Character.isDigit(userEnteredPassword.charAt(i))) {
atleastOneDigit = true;
}
}
return (atleastOneUpper && atleastOneLower && atleastOneDigit); // Return true IFF the userEnteredPassword is atleast eight characters long, has atleast one upper, lower and digit
}