DISM/SFC 使用什么哈希类型?

DISM/SFC 使用什么哈希类型?

下面代表什么哈希类型?

示例 1:0h+p0j3/Y9s1ly0mqtU741bzLjqz12mDQGKtVScMeKg=

示例 2:uNryI5MYSV5U5O1NuFPGYexSxm2nLFrRXVqga+nQjw4=

这些哈希值来自运行 Windows DISM 实用程序后的 CBS.log 文件。以下是完整行:

2017-03-11 20:46:08, Info                  CSI    00000005 Hashes for file member \SystemRoot\WinSxS\amd64_microsoft-windows-c...appxmain.resources_31bf3856ad364e35_10.0.14393.206_sr-..-cs_8caf1c5c152c5f9f\resources.sr-Latn-CS.pri do not match actual file [l:24]'resources.sr-Latn-CS.pri' :
  Found: {l:32 0h+p0j3/Y9s1ly0mqtU741bzLjqz12mDQGKtVScMeKg=} Expected: {l:32 uNryI5MYSV5U5O1NuFPGYexSxm2nLFrRXVqga+nQjw4=}

它类似于 Base64,但事实并非如此,因为不同大小的文件的哈希值长度始终相同。我还认为也许不是哈希值本身,而是 MD5 或 SHA 之类的 Base64,但用 Base64 解码此字符串也无济于事。

谢谢。

答案1

Windows 使用 SHA256 对 WinSxS 中的文件进行哈希处理:

<dsig:DigestMethod xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />

以下是 的内容FlashUtil_ActiveX.dll

<file name="FlashUtil_ActiveX.dll" destinationPath="$(runtime.system32)\Macromed\Flash\" sourceName="FlashUtil_ActiveX.dll" sourcePath=".\" importPath="$(build.nttree)\adobe\flash\">
    <securityDescriptor name="WRP_FILE_DEFAULT_SDDL" />
    <asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2">
      <dsig:Transforms xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
      <dsig:DigestValue xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">22R1ba1WE7oyGXwA0vGwywUOw/Hw/27MqRmwHJpL04g=</dsig:DigestValue>
    </asmv2:hash>
  </file>

下面dsig:DigestValue你会看到预期的哈希值。如果 Windows 扫描文件,它会为实际文件创建哈希值,并将其与 WinSxS 中的清单文件中的哈希值进行比较。

相关内容