栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ToolsOh-密码生成器(KT:JAVA、zxcvbn、passay)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ToolsOh-密码生成器(KT:JAVA、zxcvbn、passay)

功能描述

随机生成可靠、随机且唯一的密码



模块类图



页面地址

http://www.toolsoh.com/p/t/life/mimashengchengqi-passwordgenerator.html



界面展示
关键代码

maven引用

            
                org.passay
                passay
                1.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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462160.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号