eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingTEA PHP i 2 różne systemy i małe problemy TEA PHP i 2 różne systemy i małe problemy
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
    s.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border4.nntp.
    dca.giganews.com!border2.nntp.dca.giganews.com!border3.nntp.dca.giganews.com!bo
    rder1.nntp.dca.giganews.com!nntp.giganews.com!npeer02.iad.highwinds-media.com!n
    ews.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!
    newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02
    .news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "Rafal\(sxat\)" <gonzak[@]op.pl>
    Newsgroups: pl.comp.programming
    Subject: TEA PHP i 2 różne systemy i małe problemy
    Date: Mon, 6 Dec 2010 22:40:34 +0100
    MIME-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2800.2001
    X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.2001
    Lines: 90
    Message-ID: <4cfd5714$0$20993$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 79.185.40.73
    X-Trace: 1291671316 unt-rea-a-01.news.neostrada.pl 20993 79.185.40.73:3806
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:187492
    [ ukryj nagłówki ]

    Witam,

    mam takiego smiesznego buga...

    na czym polega? a na tym że skypt TEA w PHPie pod windows działa
    dobrze, po przegraniu na serwer Linuxowy... przestaje poprawnie
    dekodować (są same krzaki)

    w sumie zlokalizowałem błąd - że źle dodaje/potęguje na unixie
    w tym miejscu w unbrew (algorytm przepisany z javy) ale po
    zastąpieniu tego przez np bcpow lub bcadd - dekodowanie wogole
    przestaje dzialać i na windows i pod PHpem

    jest jakaś różnica w interpretacji wartości ... ale nie wiem jak sobie
    z tym poradzić

    $v1 -= (($this->bcleftshift($v0,4) ) + $this->S[2] ^ $v0) + ($sum ^
    $this->_rshift($v0, 5)) + $this->S[3];

    co w nim może być nie tak że wartość v1 otrzymuje całkowicie inne
    wartości - choć oba systemy są 32 bitowe... przez co dekodowanie
    całkowicie nie działa

    czy to wina złego ustawienia php? (PHP_INT_SIZE:8)






    function unbrew(&$buf) {
    //assert buf.length % 2 == 1;
    $i = 1;
    while ($i<Count($buf)) {
    $n = $this->CUPS;
    $v0 = $buf[$i];
    $v1 = $buf[$i+1];
    $sum = $this->UNSUGAR;
    while ($n--> 0) {
    $v1 -= (($this->bcleftshift($v0,4) ) + $this->S[2] ^
    $v0) + ($sum ^ $this->_rshift($v0, 5)) + $this->S[3];


    $a=$this->bcleftshift($v1,4);
    $b=$this->S[0] ^ $v1;
    $c=$sum ^ $this->_rshift($v1, 5);

    $d=$this->S[1];



    $v0 -= ($a + $this->S[0] ^ $v1) + $c + $d;

    $sum -= $this->SUGAR;
    }
    $buf[$i] = $v0 & 0xffffffff;
    $buf[$i+1] = $v1 & 0xffffffff;
    $i+=2;
    }
    print_r($buf);
    }

    function _rshift($integer, $n) {
    // convert to 32 bits
    if (0xffffffff < $integer || -0xffffffff > $integer) {
    $integer = fmod($integer, 0xffffffff + 1);
    }

    // convert to unsigned integer
    if (0x7fffffff < $integer) {
    $integer -= 0xffffffff + 1.0;
    } elseif (-0x80000000 > $integer) {
    $integer += 0xffffffff + 1.0;
    }

    // do right shift
    if (0 > $integer) {
    $integer &= 0x7fffffff; // remove sign
    bit before shift
    $integer >>= $n; // right shift
    $integer |= 1 << (31 - $n); // set shifted
    sign bit
    } else {
    $integer >>= $n; // use normal
    right shift
    }

    return $integer;
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: