私はATGプロジェクトに取り組んでいます。私の要件は、「パスワードには UserName と同じ文字列を含めないでください」です。たとえば。ユーザー名が abcdef@123.com の場合。その場合、pw は def@123.com であってはなりません。pw には、同じ SEQUENCE の文字が含まれていてはなりません。userName のような文字を使用できます。ただし、文字の順序/シーケンスは同じであってはなりません。
どうすればこれを確認できますか?
ありがとう、ツリーサ
私はATGプロジェクトに取り組んでいます。私の要件は、「パスワードには UserName と同じ文字列を含めないでください」です。たとえば。ユーザー名が abcdef@123.com の場合。その場合、pw は def@123.com であってはなりません。pw には、同じ SEQUENCE の文字が含まれていてはなりません。userName のような文字を使用できます。ただし、文字の順序/シーケンスは同じであってはなりません。
どうすればこれを確認できますか?
ありがとう、ツリーサ
次のようにして、パスワードにユーザー名のシーケンスが含まれているかどうかを確認できます。
public Boolean containsSequences(String uname, String pwd){
Boolean contains=false;
int count=0;
for (String seq: uname.split("/[\@\-\.\_]/g")){ //split the username following this regex.
if(pwd.indexOf(seq)>0){
count++;
}
}
if(count>0){
contains=true;
}
return contains;
}
このメソッドは、入力に 2 つの文字列 (username と pwd) を取り、次にユーザー名のサブシーケンスを取り、pwd にそれらのいずれかが含まれているかどうかをテストtrue
します。含まれている場合は、pwd にユーザー名のシーケンスが含まれていることを示すメニューを返します。
または、もっと良いことができます:
public Boolean containsSequences(String uname, String pwd){
Boolean contains=false;
for (String seq: uname.split("/[\@\-\.\_]/g")){
if(pwd.contains(seq)|| pwd.contains(seq.toUpperCase())|| pwd.contains(seq.toLowerCase())){
contains=true;
break;
}
}
return contains;
}
passowrdString.contains(userNameString) を使用します