hur.cn - 华软网

 热门搜索

求四位字符串的组合算法

  作者:未知    来源:网络    更新时间:2017/1/11
要求是数字,小写字母,大写字母的组合。
根据我已有的字符串(如0000)求得下一个字符串(0001)
abdd >> abde >> abdf ..... abdz >> abdA >>abdB >>...>> abdZ >>abe0>>abe1>>...>>abe9>>abea...

路由器密码忘记了,reset不成功,只有穷举搜索一下,我就是想不到怎么编这个算法。
各位路过的xdjm,帮帮忙吧。
------华软网友回答------
转换成ascii码,累加~
------华软网友回复------
但是中间有间隔,怎么处理比较快?

------华软网友回复------
应该类似于进制算法那种,间隔只能判位数加组字串
------华软网友回复------
没有哈希表阿,否则应该很快的,间隔是什么意思阿?
------华软网友回复------
我明白了,做个结构,分别存储char、int,然后初始化填入a,1;b,2;这样填满,然后么可以根据字母找到他的对应的大小转化为一个62(26+26+10)进制的数,然后只要取比他大1的数再一路除62取得相对应得字符就可以了。
------华软网友回复------
哈哈,62进制
------华软网友回复------
恐怕你们说的那样速度不是很快吧?
有没有更好的算法?
------华软网友回复------
晕!我想这个也快不到哪里去,要是这么快,岂不是好多密码都要被破了?只能慢慢来。建议去网上下载一个破密的工具可能快点
------华软网友回复------
我已经编好了,还是多谢各位的帮助。
代码如下:

函数 
string gf_add(string input):

string output
if input<"z" and input>="a" then
output = string(char(asc(input)+1))
else
if input<"Z" and input>="A" then
output = string(char(asc(input)+1))
else
if input<"9" and input>="0" then
output = string(integer(input)+1)
else
if input="9" then
output = "A"
else
if input="Z" then
output = "a"
else
if input="z" then
output="0"
end if
end if
end if
end if
end if
end if
return output

函数 
string gf_password(string password):

string point,retstr
point = password
string p[4],tmp
p[1]=left(point,1)
p[2]=mid(point,2,1)
p[3]=mid(point,3,1)
p[4]=mid(point,4,1)

int i
for i=1 to 4
tmp = gf_add(p[5 - i])
if asc(tmp)>asc(p[5 - i]) then
p[5 - i]=tmp
retstr = p[1]+p[2]+p[3]+p[4]
exit
else
p[5 - i]=tmp
end if
next
return retstr

------华软网友回复------
不错,偶收着~      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。