随机生成及检测8位密码:必须由大写字母、小写字母、数字和特殊符号共同组成

随机生成8位密码:必须由大写字母、小写字母、数字和特殊符号共同组成。以及检验密码是否由大写字母、小写字母、数字和特殊符号共同组成。
package com.primecredit.util;

import java.util.Random;

/**
 * @author hongk
 * 随机生成8位密码
 */
public class MakeRandomPasswordUtil {
	
	//随机生成 8 位由大写字母,小写字母,数字和特殊符号组成的密码
	public static String makeRandomPassword(){  
        char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*()_-+={}[]/?,.\"<>\\|:;\'`".toCharArray();  //L20170131 update by hong.k
        StringBuilder sb = new StringBuilder();  
        Random random = new Random();
		for (int x = 0; x < 8; ++x) {  
            sb.append(charr[random.nextInt(charr.length)]);  
        }
		String randomPassword = sb.toString();
		if (randomPassword.matches(".*[a-z]{1,}.*") && randomPassword.matches(".*[A-Z]{1,}.*") && randomPassword.matches(".*\\d{1,}.*") && randomPassword.matches(".*[<>(){}|~!@#$%^&*\\.\'\"`_?-]{1,}.*") ) { //L20170131 update by hong.k 
			return randomPassword;
        }else{
        	randomPassword = makeRandomPassword();
        }
		return randomPassword;
    }
	
	//验证密码是否由大写字母,小写字母,数字和特殊符号组成
	public static boolean checkPassword(String strPass){
		if (strPass.matches(".*[a-z]{1,}.*") && strPass.matches(".*[A-Z]{1,}.*") && strPass.matches(".*\\d{1,}.*") && strPass.matches(".*[<>(){}|~!@#$%^&*\\.\'\"`_?-]{1,}.*") ) {//L20170131 update by hong.k
			return true;
		}
		return false;
	}
	
}

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值