生成随机码的2种方法

本来打算写个微盘和百度盘的爬虫

微盘和百度盘的连接形式如下

http://pan.baidu.com/s/6NELdAumeOiO

http://vdisk.weibo.com/s/WUdfWKu1wzO

后面的参数都是随机字符串 ::: 后来因为这么生成的地址实在命中率太低,所以放弃爬虫实现。。。 

正好公司新需求,要求用户在注册的时候,生成邀请码,也涉及到随机字符串的生成,

所以研究了一下,分别用java 和 oracle 实现,具体打码如下


public static final Character[] chars = { '-', '_', '0', '1', '2', '3',
			'4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
			'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
			'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
			'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
			'U', 'V', 'W', 'X', 'Y', 'Z' };

	/**
	 * 随机生成由数字、大小写字母、-、_ 组合的长度为5-13的字符串
	 * 
	 * @return
	 */
	public static String genRandomXCode() {
		List<Character> list = Arrays.asList(chars);
		Collections.shuffle(list);
		int len = random.nextInt(9) + 5;
		StringBuilder code = new StringBuilder();
		for (int i = 0; i < len; i++) {
			code.append(chars[random.nextInt(list.size())]);
		}
		return code.toString();
	}

生成结果如下


bindL
TtsDsr5
1NcWK4qSCPIj-
6LkQL4E46o
T0beiGi2BnDrR
vJvMMfieesR
xtuUsaPbcEHdG
TKZB2rE
FYQy5tfjZQM
jvct2lauupg
usgfXQ4zII1Qe
S1MfWsH4tS1mH


oracle方法如下

select lower(DBMS_RANDOM.STRING('X', 8))  from dual 


x代表大写的 字母和数字混合的字符串

长度是8


此方法生成的字符串 会出现纯字母和纯数字的情况 如果必须要混合 可以用个循环 在循环里 


REGEXP_INSTR(V_TEMP, '[0-9]+') != 0 and REGEXP_INSTR(V_TEMP, '[0-9]+') != 8 

这样判断 就可以避开 纯数字和纯字母的情况 


生成结果如下 

ex6nf5hj

9e8nbq2p

28b8ebut




阅读更多
文章标签: java 随机码
想对作者说点什么? 我来说一句

生成随机码GUID,欢迎试用

2010年11月18日 34KB 下载

随机码生成软件

2011年09月14日 365KB 下载

java随机码生成源文件下载

2009年08月13日 218B 下载

随机码生成

2014年12月18日 975B 下载

随机多种密码自动生成

2010年12月23日 9KB 下载

随机码生成

2016年05月25日 1012KB 下载

没有更多推荐了,返回首页

不良信息举报

生成随机码的2种方法

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭