java生成随机验证码(ASCII)
2017-08-16 11:56
411 查看
最近做的一些东西,在做请求时,要伪造一些随机码,所以就写了个方法,网上实现也比较多,这里只是提供自己的这个相对来说比较简单,主要是看实现思路,主要是利用java的 Random类
因为是用于验证码,所以首位为0也是可以的,单纯的用random.nextInt(4位数)这种形式是无法生成首位为0的验证码的
1. 只生成数字验证码
因为是用于验证码,所以首位为0也是可以的,单纯的用random.nextInt(4位数)这种形式是无法生成首位为0的验证码的/** * 获取几位随机数
* @author 郑明亮 * @param number * @return */ public static String getRandomNumCode(int number){ String codeNum = ""; int [] numbers = {0,1,2,3,4,5,6,7,8,9}; Random random = new Random(); for (int i = 0; i < number; i++) { int next = random.nextInt(10000);//目的是产生足够随机的数,避免产生的数字重复率高的问题 // System.out.println(next); codeNum+=numbers[next%10]; } System.out.println("--------"); System.out.println(codeNum); return codeNum; }
2. 生成带数字、大小写字母的验证码
这的实现思路主要是先生成数字、大写字母、小写字母的ASCII值,然后将其转换成char放到一个数组中,然后从这数组中随机取一个,这样避免产生的随机码中均包含这三种的情况/** * 生成随机码值,包含数字、大小写字母 * @author 郑明亮 * @param number 生成的随机码位数 * @return */ public static String getRandomCode(int number){ String codeNum = ""; int [] code = new int[3]; Random random = new Random(); for (int i = 0; i < number; i++) { int num = random.nextInt(10) + 48; int uppercase = random.nextInt(26) + 65; int lowercase = random.nextInt(26) + 97; code[0] = num; code[1] = uppercase; code[2] = lowercase; codeNum+=(char)code[random.nextInt(3)]; } System.out.println(codeNum); return codeNum; }
相关文章推荐
- Java随机生成验证码
- java随机动态生成汉字验证码图片的实例代码分享
- JAVA生成随机验证码图片
- Java的随机验证码生成类
- java随机验证码生成
- java 随机生成四位数验证码
- Java随机生成动态验证码
- Java获取随机数生成随机字符串用于验证码等之类的工具 (未测试)
- java随机验证码生成实现实例代码
- java生成随机数字验证码图片
- Java web 开发: 随机生成验证码,支持大小写字母、数字;随机字体
- Java随机生成验证码
- java验证码中的数字、字母、汉字如何随机生成
- 自我补充篇之java随机验证码的生成(字母不同色,干扰线无规律颜色也不同)
- (java)简单的生成随机验证码
- Java生成随机汉字验证码图片
- 利用struts生成随机验证码(JAVA)
- JavaWeb_01_response_生成随机验证码
- 使用java随机生成验证码
- java生成随机六位数的验证码&随机生成十位数ValidCode码,用于邮件的验证&检查是不是符合为合法的中国的手机号码