c# 在提取嵌入资源之前获取其 md5 哈希值

发布于 2024-10-31 06:56:36 字数 102 浏览 7 评论 0原文

我们有一个嵌入式资源,需要在提取文件之前获取文件的 md5 哈希值,以便知道它是否与现有文件不同(因为如果我们必须提取它来比较它们,最好将其替换为直接提交)

任何建议表示赞赏

We have an embedded resource and need to get the md5 hash of the file before extracting it in order to know if it is different from an already existing file, (becouse if we have to extract it to compare them it would be better to replace the file directly)

Any suggestion is appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜扑 2024-11-07 06:56:36

它是什么样的嵌入式资源?如果您使用 Assembly.GetManifestResourceStream() 找到了这种方法,那么最简单的方法是:

using (Stream stream = Assembly.GetManifestResourceStream(...))
{
    using (MD5 md5 = MD5.Create())
    {
        byte[] hash = md5.ComputeHash(stream);
    }
}

如果这没有帮助,请提供有关您通常如何访问/提取资源的更多信息。

What sort of embedded resource is it? If it's one you get hold of using Assembly.GetManifestResourceStream(), then the simplest approach is:

using (Stream stream = Assembly.GetManifestResourceStream(...))
{
    using (MD5 md5 = MD5.Create())
    {
        byte[] hash = md5.ComputeHash(stream);
    }
}

If that doesn't help, please give more information as to how you normall access/extract your resource.

无法回应 2024-11-07 06:56:36

您可以使用内存流

using (MemoryStream ms = new MemoryStream(Properties.Resources.MyZipFile))
{
  using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
  {
     byte[] hash = md5.ComputeHash(ms);
     string str = Convert.ToBase64String(hash);
     // result for example: WgWKWcyl2YwlF/C8yLU9XQ==
  }
}

You can use MemoryStream

using (MemoryStream ms = new MemoryStream(Properties.Resources.MyZipFile))
{
  using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
  {
     byte[] hash = md5.ComputeHash(ms);
     string str = Convert.ToBase64String(hash);
     // result for example: WgWKWcyl2YwlF/C8yLU9XQ==
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文