Показать сообщение отдельно
Старый 28.02.2012, 05:22   #145
Новичок
 
Регистрация: 12.02.2012
Сообщений: 27
Сказал Спасибо: 8
Имеет 0 спасибок в 0 сообщенях
ErgoZ пока неопределено
По умолчанию

Тин, не поделишься формированием пакета RequestAuthLogin, а то немного запутался в нём...

Добавлено через 53 минуты
не совсем понял как его шифровать, как перегнать в аски формат логин и пароль, в общем этот пакет я так и не понял вообще

Добавлено через 2 часа 46 минут
в общем я застрял на этапе РСА шифрования логина и пароля, поделитесь под яву, плиз, а то всё какой то бред получается... в итоге не могу отправить этот пакет

Добавлено через 1 час 19 минут
мой рса кодер почему то выдаёт такую хрень:

02-28 00:19:20.517: E/AndroidRuntime(1654): java.lang.ArithmeticException: BigInteger: modulus not positive

Ошибка вот тут: r = d.modPow(exp, m);
Я так понимаю что это из-за того что m становится 0 или меньше 0... но

Вот мой рсаэнкодер и репейр кей (я так понимаю это и есть унскрамблер):

JAVA Код:
public static byte[] RepairKey(byte[] key)     {         byte[] k = new byte[128];         int i;         byte temp;         if (key.length != 128) return null;         System.arraycopy(key, 0, k, 0, 128);                    for (i = 0; i < 0x40; i++)             k[0x40 + i] = (byte)(k[0x40 + i] ^ k[i]);         for (i = 0; i < 4; i++)             k[0x0d + i] = (byte)(k[0x0d + i] ^ k[0x34 + i]);         for (i = 0; i < 0x40; i++)             k[i] = (byte)(k[i] ^ k[0x40 + i]);         for (i = 0; i < 4; i++)         {             temp = k[0x00 + i];             k[0x00 + i] = k[0x4d + i];             k[0x4d + i] = temp;         }         return k;     }         public static byte[] RSAEncrypt(String a, String p, byte[] rsakey)     {         String sD;         byte[] sD_temp, sM_temp;         int len;         BigInteger m, exp, d, r;         while (a.length() < 14) a = a + (byte)0x00;         while (p.length() < 16) p = p + (byte)0x00;         sD = a + p + (byte)0x00 + (byte)0x00 + (byte)0x00 + (byte)0x00;         System.out.println(sD);         sM_temp = rsakey;         sD_temp = new byte[37];         sD_temp[0] = 0x24;         System.arraycopy(sD.getBytes(), 0, sD_temp, 3, 34);         len = sD_temp.length;         d = new BigInteger(sD_temp);         m = new BigInteger(sM_temp);         exp = BigInteger.valueOf(65537);         r = d.modPow(exp, m);         byte [] sR = new byte[128];         System.arraycopy(r.toByteArray(), 0, sR, 0, r.toByteArray().length);         return sR;     }

Последний раз редактировалось ErgoZ, 28.02.2012 в 05:23. Причина: Добавлено сообщение
ErgoZ вне форума   Ответить с цитированием