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 从本地计算机 (file:///) 加载文件?