这是完全可能的。例如,Microsoft Authenticode 的工作原理就是如此。正如 @Guffa 在上面所说的那样,文件中需要有一些定义好的格式来将数字签名(已签名哈希)与被哈希部分分开。一个简单的例子可以是在 XML 文件中使用 某个 XML 元素 嵌入数字签名,使用 SignedXML 类进行操作。更复杂的例子可能会使用多部分文件,正如 @nonnb 所说的那样。签名者和验证者需要知道在哪里找到签名,并从计算中包括什么。