Board logo

标题: 批处理加密~ [打印本页]

作者: pusofalse     时间: 2008-4-17 19:50    标题: 批处理加密~

@echo off & setlocal enabledelayedexpansion
if exist %temp%\access.tmp del %temp%\access.tmp>nul 2>nul
:0
set c=0
set str=abcdefghijklmnopqrstuvwxyz0123456789
:1
set /a n=%random%%%36
call,set /p=%%str:~%n%,1%%<nul>>%temp%\access.tmp
set /a c+=1
if %c% lss 16 goto 1
for /f "delims=" %%a in (%temp%\access.tmp) do (
   set /p pwd=Input the password:
   if !pwd! equ %%a (
   goto succeed
   ) else (
   echo Failed!
   set /a m+=1
   if !m! equ 5 goto :eof
   del %temp%\access.tmp>nul 2>nul
   goto :0
)
)
:succeed
del %temp%\access.tmp >nul 2>nul
echo Succeed!!!
ping 127.1 /n 10 >nul
exit /b
作者: bat-zw     时间: 2008-4-17 20:03    标题: 原来是加进入密码啊:

不提倡生成临时文件,批处理可以自身修改密码的。
作者: pusofalse     时间: 2008-4-17 20:06
请高手精简一下~或者指点一下如何不生成临时文件?
作者: bat-zw     时间: 2008-4-17 20:08    标题: 请参照链接的4楼代码:

http://www.cn-dos.net/forum/viewthread.php?tid=39347&fpage=6
作者: bat-zw     时间: 2008-4-17 21:15    标题: 随便写了个,希望予你有用:


@echo off
set code=abcdefghijklmnopqrstuvwxyz0123456789-_
for /f "tokens=2" %%i in (%~nx0) do set passwords=%%i
:begin
set /a n=%random%%%38,m+=1
call,set pwd=%pwd%%%code:~%n%,1%%
if %m% lss 16 goto begin
echo.:: %pwd%>>%~nx0
cls
set /p password=请输入密码:
if "%password%"=="%passwords%" goto ok
cls
echo 密码错误&ping /n 2 127.1>nul&goto begin
pause&goto :eof
:ok
echo 密码正确!&pause&goto :eof
:: abcdefghijklmnop
[ Last edited by zw19750516 on 2008-4-17 at 09:16 PM ]