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

да, я пишу аналог этой софтины, но под явой. Чисто для себя под андроид.

Kilatif, странно работает антиксор который ты написал... особенно странно для меня:
key = key - b; - зачем из ключа вычитать весь пакет?
Array.Copy(BitConverter.GetBytes((Int32)b), 0, b_temp, 0, 4); тут тоже не совсем понятно что это делает, у нас ведь в итоге весь пакет получается 4 байтным в итоге, разве нет?

Или может я криво переписал это дело под андроид? просто на яве нет бит ковертера))) пришлось гуглить аналоги, нашёл пару функций:


PHP код:
public static int ToInt32(byte[] bytesint offset) {
          
int ret 0;
          for (
int i=0i<&& i+offset<bytes.lengthi++) {
            
ret <<= 8;
            
ret |= (int)bytes[i] & 0xFF;
          }
          return 
ret;
        } 
PHP код:
 public static byte[] toBytes(long valboolean bigEndian)
    {
        
byte[] res = new byte[8];
        if (
bigEndian)
        {
            
res[0] = (byte)(val>>56&0xFF);
            
res[1] = (byte)(val>>48&0xFF);
            
res[2] = (byte)(val>>40&0xFF);
            
res[3] = (byte)(val>>32&0xFF);
            
res[4] = (byte)(val>>24&0xFF);
            
res[5] = (byte)(val>>16&0xFF);
            
res[6] = (byte)(val>>8&0xFF);
            
res[7] = (byte)(val&0xFF);
        } else
        {
            
res[7] = (byte)(val>>56&0xFF);
            
res[6] = (byte)(val>>48&0xFF);
            
res[5] = (byte)(val>>40&0xFF);
            
res[4] = (byte)(val>>32&0xFF);
            
res[3] = (byte)(val>>24&0xFF);
            
res[2] = (byte)(val>>16&0xFF);
            
res[1] = (byte)(val>>8&0xFF);
            
res[0] = (byte)(val&0xFF);
        }
        return 
res;
    } 
в итоге у меня на выводе после антиксора: [B@40538170
не понимаю где косяк а так хочется чат на андроиде иметь)))
ErgoZ вне форума   Ответить с цитированием