1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Знатоки С# Просьба зайти в данную тему:)

Тема в разделе "Оффтопик", создана пользователем ZMEI_ANGEL, 3 фев 2013.

  1. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Всем привет.
    Знатоки C# подскажите ка мне.
    Собственно вот c# код


    Код:
     Guid GetHashString(string path)
            {
                FileStream flStream = File.OpenRead(path);
                byte[] bytes = new byte[flStream.Length];
                flStream.Read(bytes, 0, (int)flStream.Length);
                MD5CryptoServiceProvider CSP =
                    new MD5CryptoServiceProvider();
                byte[] byteHash = CSP.ComputeHash(bytes);
                string hash = string.Empty;
                foreach (byte b in byteHash)
                    hash += string.Format("{0:x2}", b);
                return new Guid(hash);
            }
          private void button1_Click(object sender, EventArgs e)
            {
                string file = ("C:\\Users\\Виталий\\AppData\\Roaming\\.minecraft\\bh.jar");
                string md5 = ("b90c47bf3482831d3af9be2449fd8eb0");
                if (GetHashString(file).ToString() == md5)
                    MessageBox.Show("Файл целый");
                else
                    MessageBox.Show("Файл поврежден");
    }
            
    Собственно постоянно выдает,что хеш не совпадает.
    Пытался привести в нижний регистр.

    Код:
    if (GetHashString(file).ToString().ToLower() == md5.ToLower())
    Ситуация не изменилась,так же приводил в верхний регистр но результат был тот же.


    Ну что посоветуете?
     
  2. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Что именно программа должна делать?
     
  3. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    А по коду не видно что должно выполняться?
     
  4. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Нет на первый взгляд не ясно чего ты пытаешься добиться, а сидеть разбираться я не буду. Разве так трудно было написать?
     
  5. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Если это попытка сравнить md5 от php с местным то они используют немного разные алгоритмы и поэтому не будут совпадать. Как исправил уже не помню...
     
  6. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Думаю как раз наоборот что по коду ясно чего я хочу добиться(Вычислить хеш md5 файла,затем сверить с уже известным хешом)
     
  7. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Ищи другой md5 для c#.
     
  8. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Если бы google мне бы нашел ответ,то я бы сюда не писал,а так пока что мне известен данный вариант:)
     
  9. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Сейчас попробую найти свои старые исходники...
     
  10. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Ну что ж не помешало бы.
     
    Пароль123456789 нравится это.
  11. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Код:
     protected string GetMD5HashFromFile(string fileName)
            {
                FileStream file = new FileStream(fileName, FileMode.Open);
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] retVal = md5.ComputeHash(file);
                file.Close();
     
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < retVal.Length; i++)
                {
                    sb.Append(retVal[i].ToString("x2"));
                }
                return sb.ToString();
            }
     
  12. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Спасибо,видел такой вариант уже.Ну я не понял как написать код"что бы он сверял с уже известным хешом)
     
  13. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    string IzvestniuHash;
    if (IzvestniuHash == GetMD5HashFromFile(путь до файла))
    {
    }
     
  14. Автор темы
    ZMEI_ANGEL

    ZMEI_ANGEL Старожил Пользователь

    Баллы:
    103
    Skype:
    kawsss1
    Спасибо за помощь
     

Поделиться этой страницей