我目前正在使用锻造技术开发一个启动器 for minecraft。 我现在面临的问题是关于哈希。 Vanilla的哈希是SHA1哈希,没关系。(例如https://s3.amazonaws.com/Minecraft.Download/versions/1.7.10/1.7.10.json) 我也要检查forhes的哈希,我有这个JSON文件:https://github.com/MinecraftForge/FML/blob/master/jsons/1.7.10-rel.json。 正如您在每个库中看到的那样,校验和字段包含两个值。 现在我的问题是:他们是什么?我想它们是文件的某种哈希,而不是名称。我试图检查SHA1和MD5,但它们不一样。 我甚至不明白为什么有两个值。 有人对此有解释吗?
答案 0 :(得分: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这些是MD5 和 SHA1对中的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();
}
}
}