1

我目前正在使用forge为我的世界开发一个启动器。我现在面临的问题是关于hashes。Vanilla 的哈希值是 SHA1 哈希值,没关系。(例如https://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/1.7.10.json)我也必须检查哈希值是否有伪造有这个 JSON 文件:https ://github.com/MinecraftForge/FML/blob/master/jsons/1.7.10-rel.json 。正如您所看到的,每个库都有一个带有两个值的校验和字段。现在我的问题是:它们是什么?我想它们是文件的某种散列,而不是名称。我尝试检查 SHA1 和 MD5,但它们不一样。我什至不明白为什么有两个值。有人对此有解释吗?

4

1 回答 1

0

据我所知,这两个校验和分别是 MD5 和 SHA1。它们与 JSON 文件根据每个库的url标签引用的 Maven 存储库相关。Forge 工件可能遵循以下内容:https ://blog.packagecloud.io/eng/2017/03/09/how-does-a-maven-repository-work/#checksumasc

简而言之,前面的 URL 简要解释了 Maven 存储库的工作原理,并引用这两个校验和作为下载验证。另一个关于创建 Maven 校验和的参考也指向它们成对出现:Maven checksum pom setting?

这是一个可以与校验和交互的插件:http: //checksum-maven-plugin.nicoulaj.net/

tl;dr 这些是 MD5SHA1 对中的 Maven 存储库校验和。在 C# 设置中,有许多选项可以验证两者:

  • https://dzone.com/articles/generating-md5-and-sha1

        public static void ComputeMD5Hash(object filePath)
        {
            using (var stream = new FileStream((string)filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                using (var md5gen = new MD5CryptoServiceProvider())
                {
                    md5gen.ComputeHash(stream);
                    Program.MD5Hash = BitConverter.ToString(md5gen.Hash).Replace("-", "").ToLower();
                }
            }
        }
    
  • 计算文件的 MD5 校验和
于 2019-03-01T19:36:14.140 回答