Добавить путь к файлу для вычисления хеша MD5 - PullRequest
0 голосов
/ 18 января 2012

Я немного искал, но ничего не могу найти по этому поводу.Я не хочу знать, возможно ли добавить путь к файлу для расчета хеш-кода MD5.

Сейчас у меня работает нормальный расчет, и он возвращает уникальные хэш-коды для всех файлов, которые отличаются.Но если я скопирую и вставлю файл, он вернет тот же хеш-код.

Так можно ли добавить путь к файлу в расчет?

BR

Ответы [ 2 ]

5 голосов
/ 18 января 2012

MD5-хэш - , просто - алгоритм для получения некоторых двоичных данных и создания из него 128-битного значения хеш-функции.

Способ определения двоичных данных для хэширования полностью исчерпантебе.Вполне разумно (скажем) включить путь к файлу, а затем содержимое файла (или наоборот), если это полезно для вас.Обычно это не так, так как вы обычно хотите проверить, что у вас есть те же данные, которые у вас были изначально, и метаданные о расположении файла не являются обычно частью "полезной" информации, которая должна бытьпроверено.Обычно вы хотите скопировать / вставить, чтобы получить тот же хэш-код.Но если вы находитесь в другой ситуации, это нормально.

2 голосов
/ 18 января 2012

MD5 - это просто хеш, он полностью зависит от того, что вы хешируете, поэтому, если вы укажете полный путь, он добавит его в хеш.

Вот некоторый код (он не оптимизирован, нонаписано просто для понимания), он вернет хеш MD5 для любой строки, переданной в

public string MD5_Encrypt(string EncryptString)
{
  string strReturn = string.Empty;
  ASCIIEncoding ASCIenc = new System.Text.ASCIIEncoding();
  byte[] InputString = ASCIenc.GetBytes(EncryptString);
  System.Security.Cryptography.MD5CryptoServiceProvider MD5Hash = new System.Security.Cryptography.MD5CryptoServiceProvider();
  byte[] ByteHash = MD5Hash.ComputeHash(InputString);
  foreach (byte b in ByteHash)
  {
    strReturn += b.ToString("x2");
  }
  return strReturn.ToString();
}
...