概述
直接看代码
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomPwdUtils {
public final static int FLAG_NUMBER = 0x00000001;
public final static int FLAG_LOWER_CASE = 0x00000002;
public final static int FLAG_UPPER_CASE = 0x00000004;
public final static int FLAG_SPECIAL_SYMBOLS = 0x00000008;
private List<String> pwdCharacterList;
public int flags = -1;
public int length = 8;
/**
* 注意设置flags,默认生成密码8位
*/
public RandomPwdUtils() {
pwdCharacterList = new ArrayList<>();
}
/**
* 生成密码
*
* @return
*/
public String generatePassword() {
addCharacter();
Random random = new Random();
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int index = random.nextInt(pwdCharacterList.size());
sb.append(pwdCharacterList.get(index));
}
return sb.toString();
}
private void addCharacter() {
if (flags == -1)
throw new IllegalArgumentException("请设置flags的值");
pwdCharacterList.clear();
if ((flags & FLAG_NUMBER) == FLAG_NUMBER) {
addNumber();
}
if ((flags & FLAG_LOWER_CASE) == FLAG_LOWER_CASE) {
addLowerCase();
}
if ((flags & FLAG_UPPER_CASE) == FLAG_UPPER_CASE) {
addUpperCase();
}
if ((flags & FLAG_SPECIAL_SYMBOLS) == FLAG_SPECIAL_SYMBOLS) {
addSpecialSymbols();
}
}
/**
* 添加数字
*/
private void addNumber() {
for (int i = 0; i < 10; i++) {
pwdCharacterList.add(i + "".toUpperCase());
}
}
/**
* 添加小写字母 a-z
*/
private void addLowerCase() {
for (int i = 97; i <= 122; i++) {
pwdCharacterList.add(String.valueOf((char) i));
}
}
/**
* 添加大写字母 A-Z
*/
private void addUpperCase() {
for (int i = 65; i < 91; i++) {
pwdCharacterList.add(String.valueOf((char) i));
}
}
/**
* 添加特殊符号
*/
private void addSpecialSymbols() {
pwdCharacterList.add("@");
pwdCharacterList.add("#");
pwdCharacterList.add("$");
pwdCharacterList.add("%");
pwdCharacterList.add("!");
}
}
使用
RandomPwdUtils utils = new RandomPwdUtils();
utils.flags = RandomPwdUtils.FLAG_NUMBER | RandomPwdUtils.FLAG_LOWER_CASE;//设置有哪些字符,通过|符号连接
utils.length = 10;//设置长度
utils.generatePassword();
最后
以上就是无私樱桃为你收集整理的随机密码生成类的全部内容,希望文章能够帮你解决随机密码生成类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复