JAVA随机类批量生成账户密码
遇到一个钓鱼网站所制作的,是一个利用Random
与StringBuffer
函数写的一个批量程序,用于塞爆对方服务器的数据库。
注意:本案例不涉及服务器请求方式的代码
public class RandomUserPwd {
public static void main(String[] args) {
//QQ所需字符串
String numStr = "0123456789";
//密码所需字符串
String pwdStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#";
//使用StringBuffer类可以比纯String类更高效拼接字符串
StringBuffer userStr = new StringBuffer();
StringBuffer userPwd = new StringBuffer();
//生成的总次数
for (int i = 0; i < 100; i++) {
//生成QQ号的逻辑 useri 表示最大位数
for (int useri = 0; useri < 9; useri++) {
int rand = (int) (Math.random()*numStr.length());
//防止首位生成为0的QQ号
if (useri == 0 && rand == 0){
useri -= 1;
continue;
}
//拼接此QQ号
userStr.append(numStr.charAt(rand));
}
//於QQ号后添加@qq.com
userStr.append("@qq.com");
//生成六位随机密码
for (int passi = 0; passi < 6; passi++) {
int rand2 = (int) (Math.random()*pwdStr.length());
userPwd.append(pwdStr.charAt(rand2));
}
System.out.println("用户名:"+userStr+" 密码:"+userPwd);
userPwd.setLength(0);
userStr.setLength(0);
}
}
}
随机的逻辑是通过Math.random()
获得一个介于0和1之间的随机浮点数,并将它与numStr
中的长度相乘,得到一个随机下标rand
数。之后利用charAt
取rand
下标即可获得该随机数。
对于熟悉Random
函数很有帮助。