Inno Setup SHA256 函数结果与任何其他实现不匹配

Inno Setup SHA256 function results do not match any other implementation

Inno Setup GetSHA256OfUnicodeStringGetSHA256OfString 提供的内置函数似乎没有生成与我能找到的任何其他实现相同的结果。

我需要生成安装期间提供的字符串的 SHA256,稍后从一段 Java 代码中检查它。

但是,Inno Setup 函数生成的 SHA256 值与我使用其他实现或在线计算器创建的任何值都不匹配。

例如,Inno Setup 手册提供了这个例子:

var SHA256: String;
begin
  SHA256 := GetSHA256OfUnicodeString('Test');
  // SHA256 = 'fe520676b1a1d93dabab2319eea03674f3632eaeeb163d1e88244f5eb1de10eb'
end;

但是,例如使用 this online calculator,'Test' 的结果是:

532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25

我找到了 implementation of the Inno Setup SHA256 functions here,但是,我的责任到此为止,因为我找不到那里使用的 THashSHA2 class 的来源。

SHA256 中是否包含一些长度字节或为什么结果不同?非常感谢任何提示。

将其他人在评论中发布的内容放在一起:

  1. 示例是错误的,因为它显示的散列是 test,而不是 Test
    我有 submitted a correction.

  2. Pascal 脚本 UnicodeString 使用 UTF-16LE,而不是您的在线计算器默认使用的 UTF-8 (ASCII)。

所以这为您提供了示例中显示的哈希值:
https://dencode.com/hash/sha256?v=test&oe=UTF-16LE&nl=crlf