私はこの基本的なパスワードシステムを使用していますが、これまでの私の長さチェッカーコードを整理しました(私のシステムでは、パスワードは6〜 )パスワードシステムのロジックを改善する必要があります
しかし、WEAK、STRONG、MEDIUMの3つのカテゴリにパスワードをソートする必要があるため、強度チェッカーは複雑です。カテゴリはパスワードの文字の種類によって決定されるため、「アルファ」は「弱」、「アルファ」は「中」、「アルファ1234」は強くなります。
パスワードの強度がWEAKの場合、強さがMEDIUMの場合、戻って別のパスワードを入力するようにプログラムに指示してから、別のパスワードを入力するか、入力された、強度が強い場合は、パスワードはこれまでのところ、自動的に
保たれて、私は文字セットを定義する3つの配列を書いている:ここで
public static String[] uppercase = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
public static String[] lowercase = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
public static int[] numbers; {
numbers = new int[10];
numbers[0] = 0;
numbers[1] = 1;
numbers[2] = 2;
numbers[3] = 3;
numbers[4] = 4;
numbers[5] = 5;
numbers[6] = 6;
numbers[7] = 7;
numbers[8] = 8;
numbers[9] = 9;
}
は文字チェッカーメソッドです:
public static boolean containsUppercase(String p) {
for (int i=0; i < p.length(); i++) {
for (int j = 0; j < uppercase.length; j++) {
if (Character.toString(p.charAt(i)).equals(uppercase[j])) {
return true;
}
}
}
return false;
}
public static boolean containsLowercase(String p) {
for (int i=0; i < p.length(); i++) {
for (int j = 0; j < lowercase.length; j++) {
if (Character.toString(p.charAt(i)).equals(lowercase[j])) {
return true;
}
}
}
return false;
}
public static boolean containsNumbers(String p) {
for (int i=0; i < p.length(); i++) {
for (int j = 0; j < numbers.length; j++) {
if (Character.toString(p.charAt(i)).equals(numbers[j])) {
return true;
}
}
}
return false;
}
そしてここでは、パスワード強度チェッカーです:私はプログラムを実行すると
if ((containsUppercase(password)) || (containsLowercase(password)) || (containsNumbers(password))) {
JOptionPane.showMessageDialog(null, "Your password strength is WEAK. You must enter another password");
passwordreenter = 0;
}
if ((containsUppercase(password) && (containsLowercase(password)) || (containsUppercase(password)) && (containsNumbers(password)) || (containsLowercase(password)) && (containsNumbers(password)))) {
passwordreenter = JOptionPane.showConfirmDialog(null, "Your password strength is MEDIUM. Would you like to enter another password anyway?");
System.out.println(passwordreenter);
}
if ((containsUppercase(password)) && (containsLowercase(password) && (containsNumbers(password)))) {
JOptionPane.showMessageDialog(null, "Your password strength is STRONG. The program will now close");
System.exit(0);
}
は、どのように私は今、それが行くように、それはすべての単一を通じて、正しいパスワードの強度にまっすぐに行くために取得するif文であればI強力なパスワードを入力してください
' "パスワードしかすることができ[...] 12文字の長"' - ' "Alpha1234が強いだろう"' - うーん...本当に? – David
各キーの各キー押しイベントでフラグを立てることをお勧めします。あなたが上げることができる3つの異なるフラグがあるとします。 1 flag raised =弱い、2 flagsはmeduim、3 flagは強い。 – Radmation
私は "パスワードのエントロピー"を調べることをお勧めします - あなたの分類は大丈夫です。さらに、パスワードをこのような小さな数に制限しないでください。 –