中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 05:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 让批处理随机修改自身的密码!!! 查看 834 回复 3
楼 主 让批处理随机修改自身的密码!!! 发表于 2008-04-17 21:47 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
因回答一位兄弟的问题有感而做,注:原始密码为abcdefghijklmnop
@echo off 
set code=abcdefghijklmnopqrstuvwxyz0123456789-_
for /f "tokens=2" %%i in (%~nx0) do set passwords=%%i
:begin
cls&set /p password= 请输入密码:
if "%password%"=="%passwords%" goto set
cls&echo 密码错误&ping /n 2 127.1>nul&goto begin
:set
set select=2
cls&set /p select= 是否更改密码(默认回车为不更改):(1. 更改 2.不更改)
if %select% equ 1 goto change
if %select% equ 2 goto ok
if %select% neq 1 if %select% neq 2 goto wrong
:change
set /a n=%random%%%38,m+=1
call,set pwd=%pwd%%%code:~%n%,1%%
if %m% lss 16 goto change
echo :: %pwd%>>%~nx0
cls&echo 请保管好你的新密码:%pwd%&pause&goto :eof
k
cls&echo 密码正确!&pause&goto :eof
:wrong
cls&echo 输入无效,请正确选择输入!&ping /n 2 127.1>nul&goto set
:: abcdefghijklmnop


[ Last edited by zw19750516 on 2008-4-18 at 01:58 PM ]
批处理之家新域名:www.bathome.net
2 发表于 2008-04-17 22:18 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
……ZW兄好厉害啊 天天在~先水个:)

P写的很好 不过太明显了吧 密码就写在P文件底下?……
P越来越大?

[ Last edited by faultcode on 2008-4-17 at 10:22 PM ]
3 发表于 2008-04-17 22:21 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
for /f "tokens=2" %%i in (%~nx0) do set passwords=%%i

问题问题
4 发表于 2008-04-17 22:28 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
可以考虑把密码写在自身第一行,每次改写,就不会使文件越来越大了。
不过这纯粹是玩玩,批处理加密没什么意义。
还可以把密码乱序写入,这样就更“安全了”。。呵呵。。。
致精致简!
论坛跳转: