【自编脚本】提取文件夹中所有文件的MD5值
简介MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16个字符(BYTES))的散列值(hash value),用于确保信息传输完整一致。
MD5曾被用于文件校验、SSL/TLS、IPsec、SSH,但MD5早已被发现有明显的缺陷。2004年,证实MD5算法无法防止碰撞攻击,因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途——但日常使用绰绰有余。
使用方法
将代码复制粘贴到.txt中保存,并将后缀改为.bat,放入想要提取文件MD5的文件夹下,双击运行即可。
文件名会标记为“YYMMDD_hhmm.txt”。然后将当前目录位置、生成详细时间记录于开头,紧接着输出所有文件的MD5和文件名,效果如下:
还可以和之前提到过的【软件推荐】ContextMenuManager 右键菜单管理联合,将该.bat批处理文件集成到右键菜单,方便随时在任意目录下调用。
代码
@echo off
setlocal enabledelayedexpansion
:: 获取当前日期和时间
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%"
:: 设置输出文件名
set "filename=%YY%%MM%%DD%_%HH%%Min%.txt"
:: 写入当前文件夹路径
echo Current Directory: %CD% > %filename%
:: 写入生成时间
echo Generated on: %date% %time% >> %filename%
echo. >> %filename%
:: 写入表头
echo Hash Name >> %filename%
echo ---- ---- >> %filename%
:: 遍历当前文件夹下的所有文件
for %%F in (*) do (
:: 计算文件的MD5值
for /f "tokens=*" %%a in ('CertUtil -hashfile "%%F" MD5 ^| findstr /v "hash of file certutil"') do (
set "filehash=%%a"
set "filehash=!filehash: =!"
:: 将小写字母替换为大写字母
for %%i in (A B C D E F) do (
set "filehash=!filehash:%%i=%%i!"
)
)
:: 写入文件名和MD5值
echo !filehash! %%~nxF >> %filename%
)
endlocal
星象占卜 牛的,前排膜拜大佬 看到代码眼睛已经开始花了,还是码住以备不时之需 这个脚本对机器学习很有帮助呢{:6_169:} 现在MD5普遍用来检验文件完整性吧,有这么一个脚本还是挺方便的 哇塞,虽然目前用不到,不过先收藏了 挺专业的,能提取MD5值感觉挺方便的惹{:6_169:} 喔⊙ω⊙简单有序又明了,强迫症福音哇 感觉上是锤人必用的工具了;P 很强大的功能 一些奇怪的搬运不修改的话能方便找到是谁的文件 很专业的样子,路过。 小白如我日常甚至接触不到MD5值的运用场景,不过能有脚本还是很方便的。 0-0 今天今天也是小白感叹论坛大佬的一天jpg 过于专业系列 原来md5是这个意思,学到了 只知道md5用来验证文件一致性 对需要MD5码的坛友很方便了{:6_200:} 我的天哪,楼主这个技术太强了 我的妈论坛真是人才济济,膜拜大佬{:4_93:} 给星之子点赞b( ̄▽ ̄)d,太厉害了 虽然一直知道有md5这个东西,不过我从来都没用过,感觉没必要一样
页:
[1]
2