2012-01-29 3 views
0

Я пытаюсь хэш-файл с использованием SHA1. Результат выглядит так: B7-DB-B9-93-E7-2F-6F-EB-6D-CD-CC-A8-DE-D2-F1-01-6E-8A-53-BCЗаменить метод не заменяет тире на пустую строку

Как заменить тире на пустую строку или просто удалить их?

Код, пытающийся заменить тире, но кажется, что он ничего не меняет, и тире все еще на месте.

using (HashAlgorithm hashSHA1 = new SHA1Managed()) 
using (Stream file = new FileStream(ofdBrowse.FileName, FileMode.Open, FileAccess.Read)) 
{ 
    byte[] hash = hashSHA1.ComputeHash(file); 

    txtSHA1.Text = BitConverter.ToString(hash).Replace("-", ""); 
} 
+0

Что такое txtSHA1? любой способ попытаться разбить код на биты. 'txtSHA1.Text = BitConverter.ToString (hash) .Replace (" - "," "); 'должен стать' var a = BitConverter.ToString (hash); 'var b = a.Replace (" - "," "); 'txtSHA1.Text = b; ' – Nahum

+0

@Nahum Litvin, это, похоже, не работает. Это странно. – HelpNeeder

+0

Хорошо, решено. Причина? Моя глупость. lol – HelpNeeder

ответ

2

код, который вы дать определенно удаляет тире. Короткий, но полная программа, чтобы продемонстрировать, что:

using System; 
using System.IO; 
using System.Security.Cryptography; 

class Test 
{ 
    static void Main(string[] args) 
    { 
     using (HashAlgorithm hashSHA1 = new SHA1Managed()) 
     { 
      // Actual data doesn't matter 
      using (Stream data = new MemoryStream()) 
      { 
       byte[] hash = hashSHA1.ComputeHash(data); 

       Console.WriteLine(BitConverter.ToString(hash).Replace("-", "")); 
      } 
     } 
    } 
} 

Таким образом, потенциальная причина вашей проблемы:

  • Вы не бежите сборки вы думаете, вы
  • У вас есть другой код, который делает хэширования, но не имеют Replace вызов
  • вы смотрите на неправильном бит UI :)

Это действительно трудно угадать, какой из них (или что-нибудь еще) является проблемой, но этот код не так ...

+0

Хм, тогда у меня должен быть какой-то тупик. Я проверю дважды. – HelpNeeder

+0

Хорошо, это странно. Когда я делаю 'txtSHA1.Text =" test ";' сразу после 'InitializeComponents();' Я вижу тест в правильной строке. Но когда я делаю 'txtSHA1.Text =" tesy "+ BitConverter.ToString (hash) .Replace (" - ", string.Empty);' text 'test' не включается в текстовое поле. – HelpNeeder

+0

Хорошо, я думаю, я сделал ошибку. Спасибо, в любом случае. У меня был тот же метод дважды .. lol – HelpNeeder

Смежные вопросы