使用Windows Certutil程序生成md5校验和

时间:2017-12-18 12:26:24

标签: hash md5 digitization

我需要为tifjpg图片列表生成md5哈希值。 必须将哈希值插入到XML文件中,该文件包含有关每个图像的元数据,这些元数据将用于文档的数字化。 md5哈希的使用不是我的决定,而是基于都柏林核心的标准的正式要求,用于这些类型的文档的数字化。 Xml file, md5 tag is underlined

我目前正在使用Windows内置的Certutil程序从命令提示符生成每个md5哈希。

我的问题很简单:我做得对吗? 我知道这个过程很慢,但列表很短。

Certutil hash function

2 个答案:

答案 0 :(得分:0)

它看起来没问题,请记住,指定哈希算法(MD5)适用于Windows 7及更高版本(较旧的Windows抛出和错误),并且必须为大写。 您还可以添加find / v“hash”以仅获取散列本身 像这样

source ~/.bash_profile

例如,在Windows 8上运行,我得到了这个输出

certUtil -hashfile pathToFileToCheck MD5 | find /v "hash"

并且使用find / v“hash”我已经

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技巧是在字符串“hash”之后排除(/ v参数),你必须用双引号指定字符串。 由于哈希本身的第一行和最后一行包含单词哈希,因此您具有干净的输出

我的版本适用于cmd而不是PowerShell

答案 1 :(得分:0)

我经常需要创建一个哈希文件来放置在 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 支持。