2

我正在做一个 ATG 项目。我的要求是“密码不应包含与用户名中相同的字符序列”。例如。如果用户名是 abcdef@123.com。那么 pw 不应该是 def@123.com pw 不应该包含相同的字符序列。它可以具有 userName 中的字符。但是字符的顺序/顺序不应该相同。

我怎样才能检查这个?

谢谢,特里萨

4

2 回答 2

1

您可以执行以下操作来检查密码是否包含任何用户名序列:

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;
}

该方法在输入中接受两个字符串(用户名和密码),然后获取用户名的子序列并测试密码是否包含其中一个,如果是,则返回true密码包含用户名序列的menas。

或者你可以做的更好:

 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;
}
于 2015-02-27T10:08:16.193 回答
-2

使用 passowrdString.contains(userNameString)

于 2015-02-27T09:41:11.850 回答