Я пробовал хэшировать строку в PHP с использованием MD5 и то же самое в C#, но результаты разные, если строка содержит специальные символы. Может ли кто-нибудь объяснить мне, как это сделать?Специальные символы хеша MD5
Вот мой код в C#:
MD5 md5 = new MD5CryptoServiceProvider();
//compute hash from the bytes of text
md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
//get hash result after compute it
byte[] result = md5.Hash;
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
//change it into 2 hexadecimal digits
//for each byte
strBuilder.Append(result[i].ToString("x2"));
}
return strBuilder.ToString();
Моя строка "Samuel2989&*"
в виде строки.
Выходы:
PHP: 957915b9c9a8fb65e13fe1dc9a8b86d4
C#: f5ee451f7eb4587da00d4aa31ae1c378
Трудно сказать, почему он отличается от кода PHP. – itsme86
На PHP для меня md5 («Samuel2989 &*"); возвращает то же, что и ваш код C#. –
PHP генерирует правильный хэш MD5 для меня. – ceejayoz