字母数字压缩包密码解密工具字典版beta

文本编辑器保存为文件类型bat

@echo off
setlocal enabledelayedexpansion
title 字母数字压缩包解密工具
rem mode con cols=120 lines=25
echo 字母数字压缩包解密工具
echo.
echo 48:0>%temp%\alphat.txt
echo 49:1>>%temp%\alphat.txt
echo 50:2>>%temp%\alphat.txt
echo 51:3>>%temp%\alphat.txt
echo 52:4>>%temp%\alphat.txt
echo 53:5>>%temp%\alphat.txt
echo 54:6>>%temp%\alphat.txt
echo 55:7>>%temp%\alphat.txt
echo 56:8>>%temp%\alphat.txt
echo 57:9>>%temp%\alphat.txt
echo 97:a>>%temp%\alphat.txt
echo 98:b>>%temp%\alphat.txt
echo 99:c>>%temp%\alphat.txt
echo 100:d>>%temp%\alphat.txt
echo 101:e>>%temp%\alphat.txt
echo 102:f>>%temp%\alphat.txt
echo 103:g>>%temp%\alphat.txt
echo 104:h>>%temp%\alphat.txt
echo 105:i>>%temp%\alphat.txt
echo 106:j>>%temp%\alphat.txt
echo 107:k>>%temp%\alphat.txt
echo 108:l>>%temp%\alphat.txt
echo 109:m>>%temp%\alphat.txt
echo 110:n>>%temp%\alphat.txt
echo 111:o>>%temp%\alphat.txt
echo 112:p>>%temp%\alphat.txt
echo 113:q>>%temp%\alphat.txt
echo 114:r>>%temp%\alphat.txt
echo 115:s>>%temp%\alphat.txt
echo 116:t>>%temp%\alphat.txt
echo 117:u>>%temp%\alphat.txt
echo 118:v>>%temp%\alphat.txt
echo 119:w>>%temp%\alphat.txt
echo 120:x>>%temp%\alphat.txt
echo 121:y>>%temp%\alphat.txt
echo 122:z>>%temp%\alphat.txt
echo 65:A>>%temp%\alphat.txt
echo 66:B>>%temp%\alphat.txt
echo 67:C>>%temp%\alphat.txt
echo 68:D>>%temp%\alphat.txt
echo 69:E>>%temp%\alphat.txt
echo 70:F>>%temp%\alphat.txt
echo 71:G>>%temp%\alphat.txt
echo 72:H>>%temp%\alphat.txt
echo 73:I>>%temp%\alphat.txt
echo 74:J>>%temp%\alphat.txt
echo 75:K>>%temp%\alphat.txt
echo 76:L>>%temp%\alphat.txt
echo 77:M>>%temp%\alphat.txt
echo 78:N>>%temp%\alphat.txt
echo 79:O>>%temp%\alphat.txt
echo 80:P>>%temp%\alphat.txt
echo 81:Q>>%temp%\alphat.txt
echo 82:R>>%temp%\alphat.txt
echo 83:S>>%temp%\alphat.txt
echo 84:T>>%temp%\alphat.txt
echo 85:U>>%temp%\alphat.txt
echo 86:V>>%temp%\alphat.txt
echo 87:W>>%temp%\alphat.txt
echo 88:X>>%temp%\alphat.txt
echo 89:Y>>%temp%\alphat.txt
echo 90:Z>>%temp%\alphat.txt
echo 请回忆以下字母数字密码关键字的情况:
echo 1.姓名首字母或全拼 2.生日日期或日期时间
echo 3.年龄 4.身体数据如身高体重 5.特殊日期
echo 6.qq/微信号 7.对你重要人的信息 8.曾用过的密码
echo 9.一段有意义的文字如诗句 10.与内容有关的密码
echo 11.学号 12.重复数字密码如6666/8888 13.地址
echo 14.身份证号全部或部分 15.网址 16.网名/昵称
echo 17.以上组合
echo.
echo 请尝试用以下方式找回:
echo 1.询问文件作者 2.压缩包注释 3.压缩包使用说明
echo 4.自己尝试回忆部分的密码关键词找回
echo 5.把可能的密码写入本程序所在目录下historyPwd.txt
echo 一行一个密码,程序精确匹配或使用忽略大小写
echo 帮助尝试找回(跳过数字)
echo.
pause
if not exist historyPwd.txt (
echo.>historyPwd.txt
)
set /p rarFile=请输入压缩包路径如C:\test.rar:
echo.
set /p rarRoot=请输入WINRAR主目录如C:\Program Files\WinRAR:
echo.
echo 正在读取压缩包注释,查找是否包含网址、密码关键词并尝试解密
echo.
set curPath=
for /f %%j in ('cd') do (
set curPath=%%j
)
cd /d "!rarRoot!"
for /l %%c in (1,1,2) do (
if %%c equ 1 (
call:checkPwd 网址
)
if %%c equ 2 (
call:checkPwd 密码
)
)
cd /d !curPath!
echo 正在初始化historyPwd.txt
echo.
copy /y /b historyPwd.txt historyPwd1.txt>nul
echo.>historyPwd.txt
set firstTime=1
for /f %%k in (historyPwd1.txt) do (
set historyFlag=0
for /f "usebackq" %%l in (`findstr /r /m "^%%k$" historyPwd.txt`) do (
set historyFlag=1
)
rem echo %%k
rem echo !historyFlag!
rem pause
if "!historyFlag!" equ "0" (
if "!firstTime!" equ "1" (
echo %%k>historyPwd.txt
set firstTime=0
) else (
echo %%k>>historyPwd.txt
)
)
)
del /q historyPwd1.txt
echo 正在读取historyPwd.txt历史密码文件并尝试解密
echo 您可以在本程序同级目录下新建historyPwd.txt文件,
echo 并可以手动在此文件中录入待校验的密码,
echo 格式为每行一个密码
for /f %%f in (historyPwd.txt) do (
call:checkPwd1 %%f
)
echo.
cd /d !curPath!
echo 正在读取historyPwd.txt历史密码文件并尝试使用忽略大小写方式解密
for /f %%r in (historyPwd.txt) do (
call:changFormAndCheck %%r
)
del /q ignoreList.txt
echo.
set /p len1=请输入位数,不知道位数直接回车:
echo.
set /p pwdType=请输入密码类型1:纯数字,2:纯字母,其他字符:混合,不知道类型直接回车:
echo.
set /p quanzhong=请输入权重顺序(密码类型不选时使用)1:数字2:字母3:混合,比如输入123表示优先数字,其次字母,最后混合,不设置直接回车:
echo.
set beginTime=%time%
rem cd /d "C:\Program Files\WinRAR"
cd /d "!rarRoot!"
set len=1
if not "!len1!"=="" (
set len=!len1!
)
for /l %%t in (1,0,1) do (
if "!quanzhong!" equ "" (
if "!pwdType!" equ "" (
call:diguiMix !len!
) else (
if "!pwdType!" equ "1" (
call:diguiDigit !len!
) else (
if "!pwdType!" equ "2" (
call:diguiAlphat !len!
) else (
call:diguiMix !len!
)
)
)
) else (
set quanzhong1=!quanzhong:~0,1!
set quanzhong2=!quanzhong:~1,1!
set quanzhong3=!quanzhong:~2!
for /l %%b in (1,1,3) do (
set quanzhong4=
if %%b equ 1 (
set quanzhong4=!quanzhong1!
)
if %%b equ 2 (
set quanzhong4=!quanzhong2!
)
if %%b equ 3 (
set quanzhong4=!quanzhong3!
)
if "!quanzhong4!" equ "1" (
call:diguiDigit !len!
) else (
if "!quanzhong4!" equ "2" (
call:diguiAlphat !len!
) else (
call:diguiMix !len!
)
)
)
)
if not "!len1!"=="" (
exit
)
set /a len=!len!+1
)

:diguiMix
for /f "tokens=2 delims=:" %%a in ('type %temp%\alphat.txt') do (
if %1 geq 1 (
set /a num=%1-1
call:diguiMix !num! %2%%a
) else (
rar x -mt50 -o+ -r- -p%2 -inul -ilog%temp%\rarlog.txt "!rarFile!"
set checkCharFlag=1
for /f "usebackq tokens=3 delims=:" %%i in (`find /c "错误" %temp%\rarlog.txt`) do (
set checkChar=%%i
set checkChar=!checkChar: =!
if not "!checkChar!"=="0" (
set checkCharFlag=0
echo password %2 is fail^^!
)
)
if "!checkCharFlag!" equ "1" (
cls
echo !beginTime!
echo rar password is %2^^!
cd /d "!curPath!"
echo %2>密码.txt
start 密码.txt
echo %2>>historyPwd.txt
echo %time%
pause
exit
)
del /q %temp%\rarlog.txt
goto :eof
)
)
exit /b

:diguiDigit
for /l %%a in (0,1,9) do (
if %1 geq 1 (
set /a num=%1-1
call:diguiDigit !num! %2%%a
) else (
rar x -mt50 -o+ -r- -p%2 -inul -ilog%temp%\rarlog.txt "!rarFile!"
set checkCharFlag=1
for /f "usebackq tokens=3 delims=:" %%i in (`find /c "错误" %temp%\rarlog.txt`) do (
set checkChar=%%i
set checkChar=!checkChar: =!
if not "!checkChar!"=="0" (
set checkCharFlag=0
echo password %2 is fail^^!
)
)
if "!checkCharFlag!" equ "1" (
cls
echo !beginTime!
echo rar password is %2^^!
cd /d "!curPath!"
echo %2>密码.txt
start 密码.txt
echo %2>>historyPwd.txt
echo %time%
pause
exit
)
del /q %temp%\rarlog.txt
goto :eof
)
)
exit /b

:diguiAlphat
for /f "skip=10 tokens=2 delims=:" %%a in ('type %temp%\alphat.txt') do (
if %1 geq 1 (
set /a num=%1-1
call:diguiAlphat !num! %2%%a
) else (
rar x -mt50 -o+ -r- -p%2 -inul -ilog%temp%\rarlog.txt "!rarFile!"
set checkCharFlag=1
for /f "usebackq tokens=3 delims=:" %%i in (`find /c "错误" %temp%\rarlog.txt`) do (
set checkChar=%%i
set checkChar=!checkChar: =!
if not "!checkChar!"=="0" (
set checkCharFlag=0
echo password %2 is fail^^!
)
)
if "!checkCharFlag!" equ "1" (
cls
echo !beginTime!
echo rar password is %2^^!
cd /d "!curPath!"
echo %2>密码.txt
start 密码.txt
echo %2>>historyPwd.txt
echo %time%
pause
exit
)
del /q %temp%\rarlog.txt
goto :eof
)
)
exit /b

:checkPwd
for /f "usebackq" %%d in (`rar cw  -z !rarFile!^|find "%1"`) do (
echo 压缩包注释中包含%1关键词,请尝试用此%1解密
echo.
)
rem rar v -c- -ep
for /f "usebackq" %%m in (`rar v -c- -ep !rarFile!^|find "%1"`) do (
echo 压缩包文件名中包含%1关键词,请尝试用此%1解密
echo.
)
exit /b

:checkPwd1
cd /d "!rarRoot!"
rar x -mt50 -o+ -r- -p%1 -inul -ilog%temp%\rarlog.txt "!rarFile!"
set checkCharFlag2=1
for /f "usebackq tokens=3 delims=:" %%g in (`find /c "错误" %temp%\rarlog.txt`) do (
set checkChar2=%%g
set checkChar2=!checkChar2: =!
if not "!checkChar2!"=="0" (
set checkCharFlag2=0
echo password %1 is fail^^!
)
)
if "!checkCharFlag2!" equ "1" (
cls
echo rar password is %1^^!
cd /d "!curPath!"
echo %1>密码.txt
start 密码.txt
echo %1>>historyPwd.txt
pause
exit
)
del /q %temp%\rarlog.txt
exit /b

:changFormAndCheck
cd /d "!curPath!"
echo A:a>%temp%\alphatComp.txt
echo B:b>>%temp%\alphatComp.txt
echo C:c>>%temp%\alphatComp.txt
echo D:d>>%temp%\alphatComp.txt
echo E:e>>%temp%\alphatComp.txt
echo F:f>>%temp%\alphatComp.txt
echo G:g>>%temp%\alphatComp.txt
echo H:h>>%temp%\alphatComp.txt
echo I:i>>%temp%\alphatComp.txt
echo J:j>>%temp%\alphatComp.txt
echo K:k>>%temp%\alphatComp.txt
echo L:l>>%temp%\alphatComp.txt
echo M:m>>%temp%\alphatComp.txt
echo N:n>>%temp%\alphatComp.txt
echo O:o>>%temp%\alphatComp.txt
echo P:p>>%temp%\alphatComp.txt
echo Q:q>>%temp%\alphatComp.txt
echo R:r>>%temp%\alphatComp.txt
echo S:s>>%temp%\alphatComp.txt
echo T:t>>%temp%\alphatComp.txt
echo U:u>>%temp%\alphatComp.txt
echo V:v>>%temp%\alphatComp.txt
echo W:w>>%temp%\alphatComp.txt
echo X:x>>%temp%\alphatComp.txt
echo Y:y>>%temp%\alphatComp.txt
echo Z:z>>%temp%\alphatComp.txt
echo a:A>>%temp%\alphatComp.txt
echo b:B>>%temp%\alphatComp.txt
echo c:C>>%temp%\alphatComp.txt
echo d:D>>%temp%\alphatComp.txt
echo e:E>>%temp%\alphatComp.txt
echo f:F>>%temp%\alphatComp.txt
echo g:G>>%temp%\alphatComp.txt
echo h:H>>%temp%\alphatComp.txt
echo i:I>>%temp%\alphatComp.txt
echo j:J>>%temp%\alphatComp.txt
echo k:K>>%temp%\alphatComp.txt
echo l:L>>%temp%\alphatComp.txt
echo m:M>>%temp%\alphatComp.txt
echo n:N>>%temp%\alphatComp.txt
echo o:O>>%temp%\alphatComp.txt
echo p:P>>%temp%\alphatComp.txt
echo q:Q>>%temp%\alphatComp.txt
echo r:R>>%temp%\alphatComp.txt
echo s:S>>%temp%\alphatComp.txt
echo t:T>>%temp%\alphatComp.txt
echo u:U>>%temp%\alphatComp.txt
echo v:V>>%temp%\alphatComp.txt
echo w:W>>%temp%\alphatComp.txt
echo x:X>>%temp%\alphatComp.txt
echo y:Y>>%temp%\alphatComp.txt
echo z:Z>>%temp%\alphatComp.txt
set txt=%1
set numFlag=1
set chrs=
set len3=0
set firstTime1=1
set digitFlag=
for /l %%n in (1,1,40) do (
if not "!txt!"=="" (
set chrs=!txt:~0,1!
if "!firstTime1!" equ "1" (
echo !chrs!_%%n>ignoreList.txt
set firstTime1=0
) else (
echo !chrs!_%%n>>ignoreList.txt
)
set skipArr=0,1,2,3,4,5,6,7,8,9
call set "k=%%^skipArr:!chrs!=%%"
if "!k!" equ "!skipArr!" (
set numFlag=0
for /f "tokens=1,2 delims=:" %%s in (%temp%\alphatComp.txt) do (
if "%%s" equ "!chrs!" (
echo %%t_%%n>>ignoreList.txt
)
)
)
set txt=!txt:~1!
set /a len3=!len3!+1
)
)
if "!numFlag!" equ "1" (
goto :eof
) else (
call:digui !len3! 1
)
exit /b

:digui
cd /d "!curPath!"
for /f "usebackq tokens=1,2 delims=_" %%v in (`findstr /r "_%2$" ignoreList.txt`) do (
set pwd1=%3%%v
if "%3" equ "" (
set pwd1=%%v
)
rem echo pwd=!pwd1!,len=%1,seq=%2
rem pause
set /a seq=%2+1
if %1 geq %2 (
if %1 equ %2 (
call:checkPwd1 !pwd1!
)
call:digui %1 !seq! !pwd1!
)
)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

humors221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值