SRI哈希不是预期的

时间:2016-07-13 15:36:31

标签: c# hash sha subresource-integrity

我正在尝试在构建过程中实现子资源完整性,所以我自己生成了我们的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);
}

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

1 个答案:

答案 0 :(得分:3)

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