SRI 哈希不是预期的

Posted

技术标签:

【中文标题】SRI 哈希不是预期的【英文标题】:SRI hash not what is expected 【发布时间】:2016-11-16 07:13:51 【问题描述】:

我正在尝试在我们的构建过程中实现子资源完整性,因此我自己为我们的 javascript 文件生成哈希键。在我们的大多数文件中,我生成的哈希值与浏览器的期望值和 srihash.org 输出的值相匹配。但是,对于 jquery 和 jquery-ui,我生成的哈希值与浏览器预期的哈希值不同,并且 srihash.org 正在输出。这是我的哈希码:

private static string GetSriHash(string text) 
    var enc = Encoding.UTF8;
    var result = new SHA384Managed().ComputeHash(enc.GetBytes(text));
    return Convert.ToBase64String(result);

其中“文本”是文件的内容。我认为这是某种编码问题,但我尝试了编码中的每个选项,但没有一个匹配。我已经尝试从文件系统中读取文件并使用 WebClient.DownloadString 从服务器获取它,并且每次都得到相同的(不正确的)哈希。

【问题讨论】:

【参考方案1】:

我找到了解决方案...如果我更改代码以使用 File.ReadAllBytes() 或 WebClient.DownloadData() 获取文件,它可以正常工作。

【讨论】:

以上是关于SRI 哈希不是预期的的主要内容,如果未能解决你的问题,请参考以下文章

如何获得 aspnetcdn.com 的 SRI(子资源完整性)哈希?

如何在 ScriptBundle for .NET MVC (4.7.2) 应用程序中包含 SRI 哈希?

是否可以将 SRI 用于 recurly.js cdn?

为啥我不能使用 SRI 从本地计算机 (file:///) 加载文件?

rails 应用程序给出错误“无法从 ru.yml 路径 加载翻译预期它返回一个哈希,但没有”

在数组的哈希上使用uniq