[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理如何将32位MD5码作为RAR密码并批量压缩为RAR文件?

本帖最后由 xp3000 于 2018-10-30 18:58 编辑

比如目录有JPG 01、JPG 02、JPG 03……文件夹,
需要将文件夹转换为MD5,然后作为压缩密码,然后将"说明.txt"不加密添加进去,再将其设为注释。
每个文件夹一个RAR,并将压缩文件和密码导出为"密码.txt"

本站有MD5工具,MD5怎么解码?根据MD5码反向解密获得原始数据
  1. @CD /D "%~dp0"
  2. @echo off
  3. setlocal EnableDelayedExpansion
  4. ::指定WinRAR安装路径和程序
  5. set "rarpath=C:\Program Files\WinRAR\Rar.exe"
  6. set a=1
  7. for /d %%a in (*) do (
  8. if not "%%~ni"=="%~n0" (
  9.     if exist 说明.txt (
  10.     @"%rarpath%" a "压缩文件!a!.rar" 说明.txt|@"%rarpath%" c "压缩文件!a!.rar"<说明.txt
  11.     echo 说明.txt内容添加为RAR注释) else (echo 说明.txt不存在
  12.         )
  13. ::判断C:\Windows\System32 目录是否存在MD5.exe
  14. if exist C:\Windows\System32\md5.exe (
  15. ::生成32位MD5码作为RAR密码
  16.     for /f %%i in ('set /p"=%%a" ^< nul ^| md5') do (
  17.     @"%rarpath%" a -k -p"%%i" -r -x*.bak -xThumbs.db -s -m1 "压缩文件!a!.rar" "%%a"
  18.     for /f "tokens=1 delims=* " %%j in ('md5 "压缩文件!a!.rar"') do (set "md5=%%j")
  19.     echo !md5! 密码:%%i>>密码.TXT
  20.     )
  21.         ) else (
  22.     @"%rarpath%" a -k -p"%%~na" -r -x*.bak -xThumbs.db -s -m1 "压缩文件!a!.rar" "%%a"
  23.     echo 压缩文件!a!.rar 密码:%%~na>>密码.TXT
  24.     ))
  25. set/a a+=1
  26. )
  27. pause
复制代码
基本上可以了,不管有没有MD5.EXE在C:\Windows\System32\文件夹都可以用了,
防止二次点击,意外停电也只需要根据时间排列,删除最后一个压缩文件重新压缩就行了。


解压格式1:压缩解压时候需要MD5.EXE,
下载地址:http://www.bathome.net/thread-2142-1-1.html
  1. @CD /D "%~dp0"
  2. @echo off
  3. setlocal EnableDelayedExpansion
  4. ::密码.TXT结构
  5. ::XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 密码:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  6. @for /f "delims=" %%a in ('dir /b *.rar') do (
  7.     @for /f "tokens=1 delims= " %%b in ('md5 "%%a"') do (
  8.     @for /f "tokens=2 delims==:" %%i in ('find "%%b" "密码.txt"') do (
  9.     "C:\Program Files\WinRAR\Rar.exe"  x -p"%%i" -y "%%a"
  10.     ))
  11. )
  12. pause
复制代码
解压格式2:不需要MD5.EXE就能解压,不过压缩时候也不能有MD5.EXE,
如果需要对两种加密压缩方法解压都有效,将压缩工具的echo !md5!改为echo 压缩文件!a!.rar就可以,还有删除它上一行的内容。
  1. /*&cls
  2. @echo off
  3. setlocal EnableDelayedExpansion
  4. ::密码.TXT结构
  5. ::xxx.rar 密码:xxx
  6. for /f "delims=" %%a in ('type 密码.txt^|cscript -nologo -e:jscript "%~f0"') do (
  7. "C:\Program Files\WinRAR\Rar.exe" %%a
  8. )
  9. pause&exit
  10. */
  11. var t='', map={}, files = WScript.StdIn.ReadAll().split('\r\n');
  12. for (var i=0; i<files.length; i++){
  13.     var str = files[i].replace(/(.+(rar|zip)) 密码:(.+)$/,' x -p"$3" -y "$1"')
  14.     if(!map[str]){map[str] = true;t+=str+'\r\n';}
  15. }
  16. WSH.echo(t);
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

第一次弄的发现原来MD5那里后面要加两个空格和-才能解密,密码长度35位,我这里找到个MD5工具MD5后面无附加数据

TOP

谢谢了,在论坛管理员帮助下解决了问题,目前没找到读取MD5码转换原始数据的方法

TOP

谢谢各位帮忙,基本可以了,以现在i3 3450CPU+GTX1050ti电脑水平得几天才能解开32位密码?

TOP

我电脑连个显卡也没不知道要跑什么时候,我一个6位密码忘记了,暴力破解大半天没解开

TOP

MD5.exe啊,用于生成32位特征值,要暴力破解的话,每多1位密码要花N倍前面的时间总和,目前的处理器估计几百年或许可以破63位的

TOP

说的少了,别人说几万年能解开密码

TOP

返回列表