随机生成指定长度的密码之---Random
随机生成指定长度的密码思路:
1.密码中可能包含字母,数字,特殊符号,为了区别分别定义常量
2.随机生成密码,自然想到要用到java.util.Random 类
3.定义一个带两个参数的方法,1跟2,分别指定密码内容类型和密码长度
具体实现过程:
import java.util.Random;
/**
* @author
* @date 创建时间:
* @version 1.0
* @parameter
* @since
* @return
*/
public class RandomChar {
private static final String CHAR_ALL = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
private static final String CHAR_LOWERCASE = "qwertyuiopasdfghjklzxcvbnm";
private static final String CHAR_UPPERCASE = "QWERTYUIOPLAKSJDHFGZXCVBNM";
private static final String NUMBERS = "0123456789";
private static final String ALL = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
private static final String CHAR_SPECIAL_ALL = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM~!@#$%^&*";
public static final int RANDOM_CHAR_UPPERCASE = 0;
public static final int RANDOM_CHAR_LOWERCASE = 1;
public static final int RANDOM_CHAR_ALL = 2;
public static final int RANDOM_NUMBERS = 3;
public static final int RANDOM_ALL = 4;
public static final int RANDOM_SPECIAL_ALL = 5;
/**
* @author
* @date 创建时间:2016-11-28 下午10:38:52
* @version 1.0
* @parameter1 type
* @parameter2 len
* @since
* @return String
*/
public static String getChars(int type, int len) {
Random random = new Random();
int i = 0;
String random_source = null;
switch (type) {
case RANDOM_CHAR_UPPERCASE:
random_source = CHAR_UPPERCASE;
break;
case RANDOM_CHAR_LOWERCASE:
random_source = CHAR_LOWERCASE;
break;
case RANDOM_CHAR_ALL:
random_source = CHAR_ALL;
break;
case RANDOM_NUMBERS:
random_source = NUMBERS;
break;
case RANDOM_ALL:
random_source = ALL;
break;
case RANDOM_SPECIAL_ALL:
random_source = CHAR_SPECIAL_ALL;
break;
default:
random_source = CHAR_SPECIAL_ALL;
break;
}
int length = random_source.length();
String result = "";
while (i < len) {
int v = Math.abs(random.nextInt()) % length;
result += random_source.substring(v, v + 1);
i++;
}
return result;
}
public static void main(String[] args)
{
String newPasswd=RandomChar.getChars(4, 6);
System.out.println("新密码是:"+newPasswd);
}
}

有兴趣的可以参考java源码中Random类具体实现方法。
参考链接:http://www.cnblogs.com/chenning/p/4873422.html
随机生成指定长度的密码之---Random的更多相关文章
- Python--随机生成指定长度的密码
在浏览别人博客时学习了random模块,手痒自我练习下,写个随机生成指定长度的密码字符串的函数,拿出来供各位参考: 废话不多说,上代码: # coding: utf-8 import random i ...
- 随机生成指定长度字符字符串(C语言实现)
相关函数 srand(), rand()头文件#include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MA ...
- php随机生成指定长度的字符串 可以固定数字 字母 混合
php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. function rand_zifu($what,$number){ $string=''; for($i = 1 ...
- Js随机生成指定长度字符串
function a(a) { var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&q ...
- (C#)生成指定长度的随机字符串的通用方法
.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...
- JS生成指定长度的随机数
/** * 生成指定长度的UUID * @param len * @param radix * @returns uuid * eg: createUUID(8, 2) "01001010& ...
- shell生成指定长度的随机数
生成指定长度是随机数 # 8位纯数字的随机数 tr -cd '0-9' </dev/urandom | head -c 8 # 16位包含字母.数字的随机数 tr -cd '[:alnum:]' ...
- python 随机生成固定长度的字串
from random import Random#随机生成4到20位的用户名def random_username(): username = '' chars = 'AaBbCcDdEeFfGgH ...
- 如何利用神经网络和Python生成指定模式的密码
今天给大家介绍的是Github上一个名叫PyMLProjects的项目,这个项目的目的是为了训练AI来学习人类构造密码的模式,然后我们就可以用AI来生成大量同一模式或种类的密码了.这种方法也许可以用来 ...
随机推荐
- Codeforces 最大流 费用流
这套题目做完后,一定要反复的看! 代码经常出现的几个问题: 本机测试超时: 1.init函数忘记写. 2.addedge函数写成add函数. 3.边连错了. 代码TLE: 1.前向星边数组开小. 2. ...
- JLOI2018 日志
JLOI2018 今年有幸参加吉林省的省选,考过之后在这里写一下总结和感受. DAY1: t1(chess):首先看到题目,第一想法是暴力,上来直接写了暴力,枚举所有的情况,再在这些情况里找到差值最大 ...
- luogu P3116 [USACO15JAN]会议时间Meeting Time
题目描述 Bessie and her sister Elsie want to travel from the barn to their favorite field, such that the ...
- Geoserver跨域问题
1 Geoserver位war包,使用Tomcat发布的情况 由于geoserver为war形式,需要解决tomcat跨域问题,geoserver版本为2.9.1. (1)下载跨域war包 下载cor ...
- 有关javaScript面向对象和原型笔记
javaScript是一种比較特殊的语言,ECMAScript中没有类的概念.跟其它面向对象的语言有一定的差别.它的对象也与基于类的语言中的对象有所不同,严格来说,javascript对象是一组没有特 ...
- java基础篇5之泛型
1 泛型的基本应用 //反射方式 指定类型,就不用强转 Construcctor<String> constructor = String.class.getConstructor(Str ...
- java集合类型接口和实现类个人总结
转载:http://blog.csdn.net/qingchunbusanchang/article/details/39576749 java的集合是一个比较综合的概念,相关的知识有很多的博客里面做 ...
- Solidworks如何保存为网页可以浏览的3D格式
1 如图所示3D装配图,在Solidworks中可以旋转,缩放. 2 我想要另存为在浏览器中可以缩放,旋转的格式.如下所示(我的装配图初步.htm) 3 步骤是,先在Solidworks中出版 ...
- apache TIME_WAIT解决办法
最近发现apache与负载均衡器的的连接数过多,而且大部分都是TIME_WAIT,调整apache2.conf后也没效果,最后百度到如下解决方案 通过调整内核参数解决 vi /etc/sysctl.c ...
- dedecms织梦后台password忘记了怎么办?dedecms织梦后台password忘记怎样找回password?
方法一:自己用解密的方式 用phpmyadmin登陆后台数据库,查看 找到password:去除前三位和后一位,然后拷贝到http://www.cmd5.com/在线解密工具里面解密 watermar ...