我需要为tif
和jpg
图像列表生成一个md5散列。散列必须与每个图像的元数据一起插入到XML文件中,该元数据将用于文档的数字化。使用md5散列不是我的决定,而是基于都柏林核心的标准的正式要求,用于这些类型的文档的数字化。Xml file, md5 tag is underlined
我目前正在使用Windows内置Certutil程序从命令提示符生成每个md5散列。
我的问题很简单:我这样做是对的吗?我知道这个过程很慢,但名单很短。
发布于 2018-04-26 18:57:06
它看起来没问题,记住指定散列算法(MD5)在Windows7和更高版本中有效(旧的窗口抛出和错误),并且必须是大写的。您还可以添加find /v " hash“来仅获取散列本身,如下所示
certUtil -hashfile pathToFileToCheck MD5 | find /v "hash"
例如,在Windows8上运行时,我得到了以下输出
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“散列”我得到了
C:\Users\xxxx\Documents>certutil -hashfile innfo MD5
67 4b ba 79 42 32 d6 24 f0 56 91 b6 da 41 34 6d
查找技巧是排除字符串“/v”后面的(散列参数),并且必须在双引号中指定该字符串。由于hash本身的第一行和最后一行包含单词hash,因此您的输出是干净的
我的版本可以从cmd而不是powershell运行。
发布于 2021-01-21 06:04:09
我经常需要创建一个散列文件放在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支持。
https://stackoverflow.com/questions/47868495
复制相似问题