Разный результат md5 между php и c #

1

Привет, я пытаюсь преобразовать этот код части с php на С# с одинаковым результатом:

PHP:

md5("apple", true) //result :8pѕ'OlIігg(•

С#:

    byte[] asciiBytes = ASCIIEncoding.ASCII.GetBytes("apple");
    byte[] hashedBytes =  MD5CryptoServiceProvider.Create().ComputeHash(asciiBytes);
    return System.Text.Encoding.ASCII.GetString(hashedBytes); //result: 8p?'OlI??g(?

Подобный, но не совсем

upd: с BitConverter.ToString(hashedBytes).Replace("-", "").ToLower(); У меня есть: 1f3870be274f6c49b3e31a0c6728957f

И у меня нет никаких проблем, когда я использую md5 ("apple", false)

  • 2
    Это помогает? stackoverflow.com/questions/5821677/...
  • 2
    Вы печатаете необработанный двоичный мусор, и некоторые из этих символов неправильно интерпретируются вашей средой вывода. например, некоторые байтовые последовательности выглядят как многобайтовые символы. Ваш md5 в порядке, это просто проблема вывода / отображения.
Показать ещё 1 комментарий
Теги:
md5

1 ответ

0

Попробуй это:

 var md5 = System.Security.Cryptography.MD5.Create();
 byte[] inputBytes = Encoding.Default.GetBytes(input);
 byte[] hash = md5.ComputeHash(inputBytes);

 var s = Encoding.Default.GetString(hash);

или выберите другой формат кодирования.

  • 0
    Я пытался, но, к сожалению, я не получил ожидаемый результат

Ещё вопросы

Сообщество Overcoder
Наверх
Меню