生成字母和特殊符号随机密码
博客专区 > Curry_M 的博客 > 博客详情
生成字母和特殊符号随机密码
Curry_M 发表于8个月前
生成字母和特殊符号随机密码
  • 发表于 8个月前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

@Service("providerService")
public class ProviderServiceImpl implements ProviderService {

	private static Logger logger = Logger.getLogger(ProviderServiceImpl.class);

	@Autowired
	private ProviderMapper providerMapper;

	static char[] bigNum = { '!', '@', '#', '$', '%', '^', '&', '*' };
	static char[] smallNum = new char[26];
	static int[] num = new int[10];

	@Override
	public String createProvider(Provider provider) {
		try {
			if (provider != null) {
				provider.setId(null);
				provider.setCreateTime(new Date());
				provider.setModifyTime(provider.getCreateTime());
				Long maxId = providerMapper.selectMaxId();
				// 生成救援商code
				String providerCode = 10000L + maxId + 1 + "";
				provider.setProviderCode(providerCode);
				// 生成key
				String key = getKey();
				provider.setPublicKey(key);
				provider.setPrivateKey(key);

				providerMapper.insertSelective(provider);
				return provider.getProviderCode();
			}
		} catch (Exception e) {
			logger.error("新增供应商异常" + e);
		}
		return null; // 新增失败
	}

	public String getKey() {
		String str = "";// 密码
		init();
		Random random = new Random();
		int big_len = 4;
		int small_len = 6;
		int num_len = 6;
		// 每一位生成对应的密码
		for (int i = 0; i < num_len; i++) {
			str += num[random.nextInt(10)];
		}
		for (int i = 0; i < small_len; i++) {
			str += smallNum[random.nextInt(26)];
		}
		for (int i = 0; i < big_len; i++) {
			str += bigNum[random.nextInt(8)];
		}
		return str;
	}

	public static void init() {
		for (int i = 97; i <= 122; i++) {// 生成小写字母表
			smallNum[i - 97] = (char) i;
		}
		for (int i = 0; i <= 9; i++) {// 生成数字表
			num[i] = i;
		}
	}

	@Override
	public void editProvider(Provider provider) {
		try {
			providerMapper.updateByCodeSelective(provider);
		} catch (Exception e) {
			logger.error("修改救援商异常" + e);
		}
	}
}

 

标签: Java
共有 人打赏支持
粉丝 2
博文 38
码字总数 40117
×
Curry_M
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: