【问题标题】:Generating md5 checksum using Windows Certutil program使用 Windows Certutil 程序生成 md5 校验和
【发布时间】:2017-12-18 12:26:23
【问题描述】:

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

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

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

Certutil hash function

【问题讨论】:

    标签: 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 支持。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多