Что такое эквивалент hexdigest в C# в Python 3.2?

В настоящее время я работаю над проектом по преобразованию программы Python 3.2 в C#.

В программе на Python есть строка кода, которая возвращает строковый объект двойной длины, содержащий только шестнадцатеричные цифры.

Фрагмент кода в программе на Python:

if sha1.hexdigest().upper() == hash_string:
    #do whatever

Я безуспешно пытался найти эквивалент hexdigest в C# из хэш-библиотеки в python.

В C# у меня уже есть хэш SHA1 в массиве байтов, но все методы, которые я пытался выполнить, эквивалентные шестнадцатеричному дайджесту, не смогли обеспечить совпадение с хэш_строкой — это то, что шестнадцатеричный дайджест sha1 должносовпадать.

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

Метод, который я сейчас использую вместо hexdigest:

string hexaHash = "";
foreach (byte b in sha1result)
{
    hexaHash += String.Format("{0:x2}", b);
}
string result = hexaHash;

РЕДАКТИРОВАТЬ: facepalmхорошо, я только что понял, в чем была моя проблема. При генерации хэша sha1 в питоне он делал это из шестнадцатеричной строки нижнего регистра. В моем С# это была шестнадцатеричная строка в верхнем регистре. Поэтому я предполагаю, что эквивалент hexdigest, который я использую, в порядке. Извините за потраченное время людей.

7
задан GeorgePotter 5 April 2012 в 15:38
поделиться