中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]怎样生成一个纯数字的密码字典
作者:
标题: [已结]怎样生成一个纯数字的密码字典 上一主题 | 下一主题
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『楼 主』:  [已结]怎样生成一个纯数字的密码字典

我想用批处理来生成密码字典,用户输入密码长度,自动生成字典文件dictionary.txt
如果输入3,则dictionary.txt的内容如下:

  Quote:
000
001
002
...
998
999

如果输入4,则dictionary.txt的内容如下:

  Quote:
0000
0001
0002
....
9998
9999

望高人指点。

[ Last edited by HAT on 2008-11-12 at 21:39 ]

2007-8-29 14:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  


@echo off
set /p num=input a number:
for /l %%i in (1,1,%num%) do call set max=%%max%%9
call set max=%%max:~0,%num%%%
for /l %%i in (0,1,%max%) do set out=000000000000000000000000%%i&&call echo %%out:~-%num%%%>>dictionary.txt

pause


   此帖被 +9 点积分      点击查看详情   
评分人:【 HAT 分数: +4  时间:2007-8-29 22:16
评分人:【 523066680 分数: +5  时间:2008-12-19 10:30


2007-8-29 16:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

多谢 wudixin96 兄
我会在此基础上思考一下纯字母密码以及字母数字混合密码
如果有问题的话再来请教

2007-8-29 22:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

差点忘了加分
罪过罪过
补上啦

2007-8-29 22:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
rockdong
初级用户




积分 48
发帖 25
注册 2007-7-30
状态 离线
『第 5 楼』:  

學習一下.

2007-8-30 17:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 6 楼』:  

也做了一个,只支持9位以下,重在参与嘛
@echo off &setlocal enabledelayedexpansion
title code by hi.baidu.com/523066680
set /p "n=输入位数,最大为9: "

for /l %%x in (1,1,%n%) do (
  set fo="for %%%%x in (0 1 2 3 4 5 6 7 8 9) do (!fo!"
  set end="!end!)"
  set echo=!echo! %%%%x
)

%fo:"=%
          echo %echo%
%end:"=%
pause




综合型编程论坛

我的作品索引
  
2008-12-19 10:32
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 7 楼』:  

(六)楼的速度好快,看不懂
我用笨办法练习一下:
@echo off
cd.>dictionary.txt
set /p in=key a number:
set b=%in%
:ex1
if %b% gtr 0 set /a b-=1&set max=9%max%&goto :ex1
set ba=%max:9=0%
:ex2
if %b% leq %max% set ok=%ba%%b%&call echo %%ok:~-%in%%%>>dictionary.txt&set /a b+=1&goto ex2
type dictionary.txt&pause&goto :eof



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-1-4 02:47
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
linee
初级用户





积分 94
发帖 49
注册 2008-12-14
状态 离线
『第 8 楼』:  

从效率上看应该是6楼的单纯n个循环最快了,7楼这个如果每个数都要去if一下,效率可想而知。
受7楼补0的启发,我也来练习一下,效率应该跟6楼很接近。
@echo off
setlocal enabledelayedexpansion
set /p n=key a number:
for /l %%i in (%n%,-1,1) do (
    set z=&set min=&set max=
    for /l %%j in (2,1,%%i) do set z=0!z!
    for /l %%j in (%n%,-1,%%i) do (set/a min=max+1&set max=9!max!)
    if !max! equ 9 set/a min=0
    for /l %%j in (!min!,1,!max!) do echo !z!%%j
)
[ Last edited by linee on 2009-1-4 at 18:59 ]

2009-1-4 16:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 9 楼』:  

哈  6楼的就是 分别用两个变量 记录了 for的层数 和 结尾的括号数

%var%表达后 所代表的字符就被当成命令执行了。

我将其视为批处理的一优点,

1。 在未知句子镶嵌数量的情况下,可以利用字符串处理进行临时镶嵌。
2。 省了很多字符,就像上面的,多层For句子都放变量里面了

参考一篇发过的文章
http://www.cn-dos.net/forum/viewthread.php?tid=45240

[ Last edited by 523066680 on 2009-8-4 at 08:52 ]



综合型编程论坛

我的作品索引
  
2009-8-4 08:48
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
ficn
初级用户





积分 30
发帖 15
注册 2008-6-23
状态 离线
『第 10 楼』:  

@echo off&setlocal enabledelayedexpansion&set y=9999999999
set/p n=input a number:
for /l %%i in (1,1,!y:~-%n%!) do (set qq=0000000000%%i
echo !qq:~-%n%!)
pause

   此帖被 +5 点积分      点击查看详情   
评分人:【 netbenton 分数: +5  时间:2009-8-5 07:53


2009-8-4 23:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: