Я пытаюсь перенести программу на Python на c #. Вот строка, которая должна быть прохождением, но в настоящее время мучает меня:
hash = hashlib.md5(inputstring).digest()
После генерации аналогичного хеша MD5 в c # Крайне важно, чтобы я создал строку хеша, аналогичную исходной программе на python, иначе все мое приложение завершится ошибкой.
Моя путаница заключается в том, какую кодировку использовать при преобразовании в строку в c # i.e
?Encoding enc = new ?Encoding();
string Hash =enc.GetString(HashBytes); //HashBytes is my generated hash
Поскольку я не могу создать два похожих хэша при использовании Encoding.Default i.e
string Hash = Encoding.Default.GetString(HashBytes);
Так что я думаю, зная, что кодирование по умолчанию для python hash.digest () поможет
EDIT
Ладно, может быть, еще немного кода сформулирует мою проблему больше. После вычисления хеша в программе python выполняются некоторые вычисления, т.е.
hash = hashlib.md5(inputstring).digest()
for i in range(0,6):
value += ord(hash[i])
return value
Теперь вы видите, почему две разные строки Hash будут проблематичными? Некоторые символы, которые появляются при запуске программы на Python, помечаются знаком '?' в C #.