Board logo

标题: 请指点如何实现自助更改密码 [打印本页]

作者: shim     时间: 2007-11-21 11:02    标题: 请指点如何实现自助更改密码

现有如下用户登录密码认证程序,请问在此基础上如何实现用户登录后可以更改密码:

set pass=0
set times=0
:start
set /p pass=请输入登录密码:
if %pass%==××××××× goto ok
if %times%==0 goto end
set /A times=%times%-1

:ok
echo 认证通过

:end
echo 对不起,您的密码有误。

谢谢指教!期待中。。。
作者: shim     时间: 2007-11-28 09:14
怎么没有高人指点呢?自己顶一下.
作者: shim     时间: 2007-11-29 15:55
再顶
作者: shim     时间: 2007-12-5 21:24
还顶
作者: shim     时间: 2007-12-9 16:57
没有高手回答,继续顶》》》》
作者: anpengshi     时间: 2007-12-9 22:21

作者: shim     时间: 2007-12-11 20:36
不能停,再顶!
作者: zhlen     时间: 2007-12-11 21:09
没有看的太懂您说的意思,如果是管理员用户下,以下这个命令可以修改密码:
net user administrator 123456

如果想每天定时修改密码的话,可以在"任务"中添加执行您写的批处理脚本.或者dos下使用如下命令: ( 开启已注册的某个计划任务 )
at id号
作者: shim     时间: 2007-12-17 23:38


  Quote:
Originally posted by zhlen at 2007-12-11 09:09 PM:
没有看的太懂您说的意思,如果是管理员用户下,以下这个命令可以修改密码:
net user administrator 123456

如果想每天定时修改密码的话,可以在"任务&q ...

我说的意思是,比如:

就是在批处理中用如下这种方式的密码更改

……
输入更改的密码
……
再次确认更改的密码
……

上述要求该怎么样实现
不是您所说的那种方式


谢谢指教!期待中。。。
作者: shim     时间: 2007-12-30 18:58
谢谢回复!
作者: aofunjaw     时间: 2007-12-31 19:54
推推~
作者: shim     时间: 2009-8-16 07:43
看来这事情已经成为难解之谜了。呵呵,静候……
作者: HAT     时间: 2009-8-17 01:08    标题: Re 12楼

多试试论坛的搜索功能

如何添加修改自身密码功能
http://www.cn-dos.net/forum/viewthread.php?tid=25040

让批处理随机修改自身的密码
http://www.cn-dos.net/forum/viewthread.php?tid=39507

修改批处理自身密码
http://www.cn-dos.net/forum/viewthread.php?tid=39347
作者: bluewaterx     时间: 2009-8-17 06:14
现从别的cmd文件里扣出来的,密码明文存在注册表中,未加密
@echo off
mode con cols=78 lines=34&color f0
setlocal enabledelayedexpansion
md c:\pw >nul 2>nul
set myPath=c:\pw\
set regRoot=HKEY_CLASSES_ROOT\.ax\rt&set regAB=rP&set pX=5
type "%myPath%hide.pw">nul 2>nul&& goto sub3

:lpSelect
CLS&ECHO      A.其他的内容[未定义]        B.设置本软件密码
echo.
set /p Sex=     请选择:
if /i "%Sex%"=="B" type "%myPath%hide.pw">nul 2>nul&& goto sub1||goto sub2
set Sex=&goto lpSelect

:sub1
        type "%myPath%%hide%.dte">nul 2>nul&& set pwNext=0 ||set pwNext=3
        if %pwNext%==0 set pX=0
        cls&Echo.
        Echo                           ╭────────────╮
        Echo           ╭───────┤    删 除 口 令 保 护   ├───────╮
        Echo           │              ╰────────────╯              │
        Echo           │                                                        │
        Echo           │    * 请输入原口令,本软件已存在保护权限                 │
        Echo           │                                                        │
        Echo           │    * 您还有 [%pX%]次机会                                  │
        Echo           │                                                        │
        Echo           ╰────────────────────────────╯
        if "%pX%"=="0" (
                <nul set/p=-1>"%myPath%%hide%.dte"
                Echo.&Echo             ≠软 件 自 我 保 护 中 , 请明 天 再 试 ≠
                Echo\&Echo             [正在写入操作日志...]
                Pause>nul&Exit
        )
        Echo.&set pInput=
        set /p pInput=             ≡Input≡
        if not defined pInput goto lpStart
        for /f "skip=4 tokens=3" %%i in ('reg query %regRoot% /v %regAB%') do set rP=%%i
        if "%rp%"=="%pInput%" (
                set pX=3
                Echo.&Echo             口令正确.
                del "%myPath%*.*" /q
                set regVal=none
                call :RegSub %regRoot% %regAB% %regVal%
                pause>nul&goto lpSelect
        )
        set /a pX-=1
        Echo.&Echo             口令错误.&Pause>nul
        goto sub1
:sub2
        cls&Echo.
        Echo                           ╭────────────╮
        Echo           ╭───────┤    设 置 软 件 口 令   ├───────╮
        Echo           │              ╰────────────╯              │
        Echo           │                                                        │
        Echo           │    * 此口令控制本软件的使用权限                        │
        Echo           │                                                        │
        Echo           │    * 一旦设置口令,请务必劳记                           │
        Echo           │                                                        │
        Echo           │    * 请输入新口令   规则:[a~z] 或 [0~9]                │
        Echo           │                                                        │
        Echo           ╰────────────────────────────╯
        Echo.&set pInput=
        echo              [一 定 要 劳 记 您 的 密 码]&echo.
        set /p pInput=             ≡Input≡
        if not defined pInput goto lpStart
        pushd "%myPath%"
        set regVal=%pInput%
        call :RegSub %regRoot% %regAB% %regVal%
        <nul set/p="%pInput%">"%myPath%hide.pw"
        cls&Echo.&Echo             设置权限成功,您的口令是:%pInput%
        pause>nul&goto lpSelect
:sub3       
        type "%myPath%%hide%.dte">nul 2>nul&& set pwNext=0 ||set pwNext=5
        if %pwNext%==0 set pX=0
        cls&Echo.
        Echo                           ╭────────────╮
        Echo           ╭───────┤    软 件 通 行 验 证   ├───────╮
        Echo           │              ╰────────────╯              │
        Echo           │                                                        │
        Echo           │    * 本软件已存在保护权限,请与管理员联系.              │
        Echo           │                                                        │
        Echo           │    * 口令安全验证有效次数:%pX%                            │
        Echo           │                                                        │
        Echo           ╰────────────────────────────╯
        if "%pX%"=="0" (
                <nul set/p=-1>"%myPath%%hide%.dte"
                Echo.&Echo             ≠软 件 自 我 保 护 中 , 请明 天 再 试 ≠
                Pause>nul&Exit
        )
        Echo.&set pInput=
        set /p pInput=             ≡Input≡
        if not defined pInput goto sub3
        for /f "skip=4 tokens=3" %%i in ('reg query %regRoot% /v %regAB%') do set rP=%%i
        if "%rp%"=="%pInput%" (
                set pX=5
                Echo.&Echo             口令正确.
                pause>nul&goto lpSelect
        )
        set /a pX-=1
        Echo.&Echo             口令错误.&Pause>nul
        goto sub3
:RegSub
        Echo Windows Registry Editor Version 5.00> "%myPath%clearTmp.reg"
        Echo [%1]>> "%myPath%clearTmp.reg"
        Echo "%2"="%3">> "%myPath%clearTmp.reg"
        Regedit /s "%myPath%clearTmp.reg"
        Del "%myPath%clearTmp.reg" 2>nul
        goto :eof

作者: shim     时间: 2009-10-2 16:27
谢谢楼上的各位同仁,楼上提供的很有参考价值,收下了。不过我的问题也解决了,是以另外一种方式搞定的。都不错。再次谢谢!