【笔记】+密码位数的控制问题
本帖最后由 keygen 于 2016-9-11 12:12 编辑这段代码是用来控制密码的位数的,但是如果密码是四十多位甚至更长,总不能写四十多级甚至更多级for循环吧......
请问有没有更简便的办法?
if (len == 12){
for (int a = 0; a < args.length ; a++) {
for (int b = 0; b < args.length ; b++) {
for (int c = 0; c < args.length ; c++) {
for (int d = 0; d < args.length ; d++) {
for (int e = 0; e < args.length ; e++) {
for (int f = 0; f < args.length ; f++) {
for (int g = 0; g < args.length ; g++) {
for (int h = 0; h < args.length ; h++) {
for (int i = 0; i < args.length ; i++) {
for (int j = 0; j < args.length ; j++) {
for (int k = 0; k < args.length ; k++) {
for (int l = 0; l < args.length ; l++) {
System.out.println(args+args+args+args+args+args+args+args+args+args+
args+args);
}
}
}
}
}
}
}
}
}
}
}
}
}
本帖最后由 loooooooong 于 2016-9-12 20:18 编辑
keygen 发表于 2016-9-11 23:58
知道密码组合的范围与长度,然后循环出来所有的可能性
//pow(x,y) x的y次幂
//length 数组的长度
//len密码的长度
for (int i = 0; i < int(pow(length, len)); i++){
int m = i;
for(int j = len-1; j >= 0; j--){
int k = 0;
k = int(m/int(pow(length, j)));
m %= int(pow(length, j));
printf("%c",args);
}
printf("");
}
dev-C++测试了一下,位数不能过多,java的话没试,你可以试试
loooooooong 发表于 2016-9-11 12:53
楼主想实现一个什么样的功能?是把某一长度的密码全部穷举出来么?
知道密码组合的范围与长度,然后循环出来所有的可能性 这个循环我给差评。
万一位数多了不得死机? Android_army 发表于 2016-9-11 12:25
这个循环我给差评。
万一位数多了不得死机?
所以才过来请教大伙了,有没有好的解决办法? 没看懂你想表达什么。位数直接取length比较不就行了 这代码写的实在是有意思{:301_983:} 还没学C语言
只知道E语言可以用 计次循环... 楼主想实现一个什么样的功能?是把某一长度的密码全部穷举出来么? 感觉好复杂,容易死机 控制位数的?看不出来!
页:
[1]
2