【问题标题】:Generating md5 checksum using Windows Certutil program使用 Windows Certutil 程序生成 md5 校验和
【发布时间】:2017-12-18 12:26:23
【问题描述】:
【问题讨论】:
标签:
hash
md5
digitization
【解决方案1】:
看起来没问题,记住指定哈希算法(MD5)适用于 Windows 7 及更高版本(旧窗口抛出和错误),并且必须为大写。
您还可以添加 find /v "hash" 以仅获取哈希本身
像这样
certUtil -hashfile pathToFileToCheck MD5 | find /v "hash"
例如,在 Windows 8 上运行,我得到了这个输出
C:\Users\xxxx\Documents>certutil -hashfile innfo MD5
MD5 hash of file innfo:
67 4b ba 79 42 32 d6 24 f0 56 91 b6 da 41 34 6d
CertUtil: -hashfile command completed successfully.
用 find /v "hash" 我得到了
C:\Users\xxxx\Documents>certutil -hashfile innfo MD5
67 4b ba 79 42 32 d6 24 f0 56 91 b6 da 41 34 6d
查找技巧是在字符串“hash”之后排除(/v 参数),您必须在双引号中指定字符串。
由于散列本身的第一行和最后一行包含单词散列,因此您有干净的输出
我的版本在 cmd 而不是 powershell 下工作
【解决方案2】:
我经常需要创建一个散列文件来放置在 FTP 服务上。
这些哈希文件必须包含原始文件的名称,以允许由各种工具完成的自动验证。
例如,如果您有一个名为 foo.txt 的文件,则必须有一个文件 foo.txt.md5,其内容如下:
a3713593c5edb65c8287eb6ff9ec4bc0 *foo.txt
下面的批次完成这项工作
for %%a in (%1) do set filename=%%~nxa
@certutil -hashfile "%1" md5 | find /V "hash" >temp.txt
for /f "delims=" %%i in (temp.txt) do set hash=%%i
echo %hash% *%filename%>%1.md5
del temp.txt
如果需要,您可以将 md5 替换为 sha256 或 512。 CERTUTIL 支持。