Суть проблемы в следующем. Есть строка данных такого вида:
/method/exe.?v=4.107&https=1&device_id=5848jh49oa8498s&lang=ru&ref=single&access_key=&message=Ла лала лалалал&owner_id=7484746&access_token=311622f4i40do4020do30dos0fo40fcxos0b
Задача захешировать ее в md5
При попытке сделать хеш этим кодом
//Получаем значение строки из переменной
string input = project.Variables["delaem_md5"].Value;
// Создаем объект этого класса.
System.Security.Cryptography.MD5 md5Hasher = System.Security.Cryptography.MD5.Create();
// Преобразуем входную строку в массив байт и вычисляем хэш
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
// Создаем новый Stringbuilder (Изменяемую строку) для набора байт
StringBuilder md5hash = new StringBuilder();
// Преобразуем каждый байт хэша в шестнадцатеричную строку
for (int i = 0; i < data.Length; i++)
{
//преобразуем элемент в шестнадцатиричную строку длиной в два символа
md5hash.Append(data.ToString("x2"));
}
//Возвращаем MD5 хеш для строки
return md5hash.ToString();
Получаем такой md5 - 0172465cd485429f5ded1b958938680a , он неверный. Должен быть другой.
При хешировании в нормальном онлайн сервисе , получаем такой - bc2bb6ca93959a6a9560b63ce32eb4ff ( именно этот правильный)
Возникает вопрос, почему в зенопостере делается неправильный хеш. Есть подозрения, что из-за символов различных в исходных данных. Но как это исправить я понятия не имею.
Буду благодарен за помощь. Нужен код C # , который правильно бы на зенки делал хеш.
/method/exe.?v=4.107&https=1&device_id=5848jh49oa8498s&lang=ru&ref=single&access_key=&message=Ла лала лалалал&owner_id=7484746&access_token=311622f4i40do4020do30dos0fo40fcxos0b
Задача захешировать ее в md5
При попытке сделать хеш этим кодом
//Получаем значение строки из переменной
string input = project.Variables["delaem_md5"].Value;
// Создаем объект этого класса.
System.Security.Cryptography.MD5 md5Hasher = System.Security.Cryptography.MD5.Create();
// Преобразуем входную строку в массив байт и вычисляем хэш
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
// Создаем новый Stringbuilder (Изменяемую строку) для набора байт
StringBuilder md5hash = new StringBuilder();
// Преобразуем каждый байт хэша в шестнадцатеричную строку
for (int i = 0; i < data.Length; i++)
{
//преобразуем элемент в шестнадцатиричную строку длиной в два символа
md5hash.Append(data.ToString("x2"));
}
//Возвращаем MD5 хеш для строки
return md5hash.ToString();
Получаем такой md5 - 0172465cd485429f5ded1b958938680a , он неверный. Должен быть другой.
При хешировании в нормальном онлайн сервисе , получаем такой - bc2bb6ca93959a6a9560b63ce32eb4ff ( именно этот правильный)
Возникает вопрос, почему в зенопостере делается неправильный хеш. Есть подозрения, что из-за символов различных в исходных данных. Но как это исправить я понятия не имею.
Буду благодарен за помощь. Нужен код C # , который правильно бы на зенки делал хеш.