BoaConstrictor-FENIX
Новичок
- Сообщения
- 11
- Репутация
- 1
Здравствуйте!
Пытаюсь написать консольный клиент для управления проектором посредством протокола pjlink.
Столкнулся с проблемой генерации управляющей строки.
в мануале сказано:
Создайте из следующих данных 32-битное хэш-значение используя алгоритм MD5.
"xxxxxx:yyyyy:zzzzzzzz"
xxxxxx - имя пользователя
yyyyy - пароль
zzzzzzzz - случайное 8-битное число, которое возвращает проектор при создании tcp сессии.
Так же есть родная прога, которая работает, но она не консольная. Она генерирует следующее значение при логине "admin1" и пароле "panasonic":
RECV
JLINK 1 000000eb
SEND:1b5c88d0033dd142854f0d64fd27743c%1POWR ?
То есть из строки "admin1
anasonic:000000eb" прога генерирует хэш "1b5c88d0033dd142854f0d64fd27743c"
но при попытке вычислить MD5 общепринятыми средствами возвращается "b35ced5ba0a9ee71fd5ca40d46c9501f"
Я уже нашел декомпилятор и полез в код проги, которая работает, проблема в том, что я не шибко шарю в C#.
На сколько я понимаю за генерацию хэша отвечает этот участок кода.
Подскажите пожалуйста как правильно сформировать управлющий сигнал.
Могу предоставить и саму прогу и мануал и декомпилятор.
Пытаюсь написать консольный клиент для управления проектором посредством протокола pjlink.
Столкнулся с проблемой генерации управляющей строки.
в мануале сказано:
Создайте из следующих данных 32-битное хэш-значение используя алгоритм MD5.
"xxxxxx:yyyyy:zzzzzzzz"
xxxxxx - имя пользователя
yyyyy - пароль
zzzzzzzz - случайное 8-битное число, которое возвращает проектор при создании tcp сессии.
Так же есть родная прога, которая работает, но она не консольная. Она генерирует следующее значение при логине "admin1" и пароле "panasonic":
RECV

SEND:1b5c88d0033dd142854f0d64fd27743c%1POWR ?
То есть из строки "admin1

но при попытке вычислить MD5 общепринятыми средствами возвращается "b35ced5ba0a9ee71fd5ca40d46c9501f"
Я уже нашел декомпилятор и полез в код проги, которая работает, проблема в том, что я не шибко шарю в C#.
На сколько я понимаю за генерацию хэша отвечает этот участок кода.
Код:
using System.Security.Cryptography;
using System.Text;
namespace PJLinkTEST4common
{
public class Cls_Authority
{
private const byte rndMax = 4;
public string StrRandom
{
get
{
byte[] data = new byte[4];
string str = "";
new RNGCryptoServiceProvider().GetNonZeroBytes(data);
for (int index = 0; index < 4; ++index)
str += data[index].ToString("x2");
return str;
}
}
public string StrHash(string str)
{
byte[] hash = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(str));
string str1 = "";
for (int index = 0; index < hash.GetLength(0); ++index)
str1 += hash[index].ToString("x2");
return str1;
}
}
}
Подскажите пожалуйста как правильно сформировать управлющий сигнал.
Могу предоставить и саму прогу и мануал и декомпилятор.