繁体   English   中英

C#提取嵌入式资源的md5哈希值

[英]c# get md5 hash of an embedded resource before extracting it

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

任何建议表示赞赏

它是哪种嵌入式资源? 如果可以使用Assembly.GetManifestResourceStream() ,那么最简单的方法是:

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

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

您可以使用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==
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM