Java生成前三位是字母循环的字典
最近要破解一个秘密,还好这个密码是有线索的,已知密码的前三位是三个字母,后五位是12345,所以干脆用代码生成字典的全部的可能。
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class createDic {
public static String CreateDic() {
//定义字典字符串
String Dic="";
//三个循环生成前三位是26个字母的循环,后5位是12345的字符串
for(char letter='a';letter<='z';letter++) {
String aDic = "";
aDic+=letter;
//临时存储当前的字符串
String aDictemp=aDic;
for(char letter1='a';letter1<='z';letter1++){
aDic+=letter1;
String aDictemp2=aDic;
for(char letter11='a';letter11<='z';letter11++){
aDic+=letter11+"12345\n";
Dic+=aDic;
aDic=aDictemp2;
}
//将临时字符串赋给aDic解决,重复累加
aDic=aDictemp;
}
}
return Dic;
}
public static void byteOutStream() throws Exception {
//1:使用File类创建一个要操作的文件路径
File file = new File("D:" + File.separator + "demo" + File.separator + "test.txt");
if(!file.getParentFile().exists()){ //如果文件的目录不存在
file.getParentFile().mkdirs(); //创建目录
}
//2: 实例化OutputString 对象
OutputStream output = new FileOutputStream(file);
//3: 准备好实现内容的输出
String msg = createDic.CreateDic();
//将字符串变为字节数组
byte data[] = msg.getBytes();
output.write(data);
//4: 资源操作的最后必须关闭
output.close();
}
public static void main(String[] args) {
try {
createDic.byteOutStream();
} catch (Exception e) {
e.printStackTrace();
}
}
}