找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31216|回复: 13

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

[复制链接]
发表于 2018-10-19 13:00:29 | 显示全部楼层 |阅读模式
本帖最后由 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);
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2018-10-19 14:44:57 | 显示全部楼层
报错信息是啥?
发表于 2018-10-19 14:51:20 | 显示全部楼层
  1. setlocal EnableDelayedExpansion
  2. for /d %%a in (*) do (
  3.     for /f "delims=" %%b in ('echo %%a^|md5') do (
  4.         set "md5=%%b"
  5.         echo !md5!
  6.     )
  7. )
复制代码
这样能取到正确的值吗?

评分

参与人数 1技术 +1 收起 理由
xp3000 + 1 乐于助人

查看全部评分

 楼主| 发表于 2018-10-19 15:04:21 | 显示全部楼层
第一次弄的发现原来MD5那里后面要加两个空格和-才能解密,密码长度35位,我这里找到个MD5工具MD5后面无附加数据
发表于 2018-10-19 15:39:58 | 显示全部楼层
回复 4# xp3000


    不可以,因为MD5在算法上是不可逆的。
 楼主| 发表于 2018-10-19 15:41:21 | 显示全部楼层
谢谢了,在论坛管理员帮助下解决了问题,目前没找到读取MD5码转换原始数据的方法
发表于 2018-10-19 15:59:19 | 显示全部楼层
本帖最后由 WHY 于 2018-10-19 16:03 编辑
  1. @echo off
  2. path %ProgramFiles%\WinRAR;%path%
  3. (for /d %%a in (*) do (
  4.     for /f %%b in ('set /p"=%%a" ^< nul ^| md5') do (
  5.         @rar a "%%a.rar" 说明.txt
  6.         @rar c -z"说明.txt" "%%a.rar"
  7.         @rar a -k -p%%b -r -x*.bak -xThumbs.db -s -m1 "%%~na.rar" "%%a"
  8.         echo;%%a %%b
  9.     )
  10. ))>密码.txt
  11. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
xp3000 + 1 感谢分享

查看全部评分

发表于 2018-10-19 16:02:32 | 显示全部楼层
md5算法是不可逆的,暴破倒是可以。
 楼主| 发表于 2018-10-19 17:00:35 | 显示全部楼层
谢谢各位帮忙,基本可以了,以现在i3 3450CPU+GTX1050ti电脑水平得几天才能解开32位密码?
发表于 2018-10-19 17:46:35 | 显示全部楼层
本帖最后由 523066680 于 2018-10-19 17:58 编辑

逆向解码是不容易的,就算你有Nvidia最新的燃气灶GTX2080,能操纵显卡写这种算法的人也不多。
但是(暗)网上有种叫彩虹表的东西,就是他有海量 “源文件” 和对应的MD5值,如果你的MD5值刚好上面也有,就可以把“源”取出来。

我搜索了一下,
某个CSDN博客给出的网址
http://www.cmd5.com/ 基本收费
https://crackstation.net/ 免费 解英文字符串
http://md5decrypt.net/en/ 免费
http://www.md5online.org/ 免费 解数字字符串

其中第三个网址,测试某个随机字符串的MD5:
Sorry, this hash is not in our database



如果源数据比较短,只有七八个字节,还是有希望跑CPU实现的。
 楼主| 发表于 2018-10-19 20:24:42 | 显示全部楼层
我电脑连个显卡也没不知道要跑什么时候,我一个6位密码忘记了,暴力破解大半天没解开
发表于 2018-10-19 20:40:17 | 显示全部楼层
本帖最后由 flashercs 于 2018-10-19 20:42 编辑

回复 11# xp3000


  MD5是什么东西啊?wifi密码设了63位,这也能爆破?
 楼主| 发表于 2018-10-19 20:56:29 | 显示全部楼层
MD5.exe啊,用于生成32位特征值,要暴力破解的话,每多1位密码要花N倍前面的时间总和,目前的处理器估计几百年或许可以破63位的
 楼主| 发表于 2018-10-20 08:13:45 | 显示全部楼层
说的少了,别人说几万年能解开密码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 20:18 , Processed in 0.012555 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表