随机生成可靠、随机且唯一的密码
模块类图
页面地址
http://www.toolsoh.com/p/t/life/mimashengchengqi-passwordgenerator.html
界面展示
关键代码
maven引用
org.passay passay1.6.1
java代码
import org.apache.commons.lang3.StringUtils;
import org.passay.*;
import org.springframework.stereotype.Component;
import java.util.ArrayList;import java.util.List;
import static org.passay.IllegalCharacterRule.ERROR_CODE;
@Component
public class PasswordGeneratorHelper {
public String generatePassayPassword(int length, boolean lowerCaseFlag, boolean upperCaseFlag, boolean digitFlag, String special) {
PasswordGenerator passwordGenerator = new PasswordGenerator();
List rules = new ArrayList<>();
if (lowerCaseFlag) {
CharacterData lowerCaseChars = EnglishCharacterData.LowerCase;
CharacterRule lowerCaseRule = new CharacterRule(lowerCaseChars);
// 至少有1个小写字母
lowerCaseRule.setNumberOfCharacters(1);
rules.add(lowerCaseRule);
}
if (upperCaseFlag) {
CharacterData upperCaseChars = EnglishCharacterData.UpperCase;
CharacterRule upperCaseRule = new CharacterRule(upperCaseChars);
upperCaseRule.setNumberOfCharacters(1);
rules.add(upperCaseRule);
}
if (digitFlag) {
CharacterData digitChars = EnglishCharacterData.Digit;
CharacterRule digitRule = new CharacterRule(digitChars);
digitRule.setNumberOfCharacters(1);
rules.add(digitRule);
}
if (StringUtils.isNotBlank(special)) {
CharacterData specialChars = new CharacterData() {
public String getErrorCode() {
return ERROR_CODE;
}
public String getCharacters() {
return special;
}
};
CharacterRule splCharRule = new CharacterRule(specialChars);
splCharRule.setNumberOfCharacters(1);
rules.add(splCharRule);
}
String password = passwordGenerator.generatePassword(length, rules);
return password;
}
public static void main(String[] args) {
String password = new PasswordGeneratorHelper().generatePassayPassword(16,true,true,true,"!@#$%^&");
System.out.println(password);
}
}
致谢开源
- 开源项目作者: vt-middleware
- 开源项目名称: passay
- 开源项目地址: https://github.com/vt-middleware/passay 去star
- 开源项目描述: Java的密码策略实施。Password policy enforcement for Java.
- 开源项目作者: nulab
- 开源项目名称: zxcvbn4j
- 开源项目地址: https://github.com/nulab/zxcvbn4j 去star
- 开源项目描述: 这是zxcvbn的一个java端口,是一个Javascript密码强度生成器。This is a java port of zxcvbn, which is a Javascript password strength generator.
END



