pomoc za jedan niz

1

pomoc za jedan niz

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Pozdrav svima, dali neko moze da mi kaze kako da uprostim ovo tj da skratim a da dobijem isto. Konkretno niz "key", pozdrav!

<pre> <?php $p = "018038D2020B014007030B0009056701E2033E8C00E2033E8CFFE2033E8CFEEA10774D01F597EC449321F7A89193B2350EF0082156A371A77D9A6F8038D2020B014007030B0008061501E2033E8C00E2033E8CFFE2033E8CFEEA10B558B153394A1C848F03AB6088EAB945F0081CAD682458D81A998038D2020B014007030B0008061500E2033E8C00E2033E8CFFE2033E8CFEEA102EA149998F98850A635F100A17EB3DAEF008C7C5E9DC0E4E52618038D2020B014007030B0009056700E2033E8C00E2033E8CFFE2033E8CFEEA10168F8F61B449B5EDBC92222CCB4E40A3F0087F53FDCC757CCF86"; $ulaz_array = str_split($p, 2); $ulaz_len = count($ulaz_array); $proc = array(); $encrypted = false;   for ($i=0; $i<$ulaz_len; $i++) {     $ab = $ulaz_array[$i].$ulaz_array[$i+1];     $cde = $ulaz_array[$i+2].$ulaz_array[$i+3].$ulaz_array[$i+4];     $f = $ulaz_array[$i+5];     switch ($cde)     {         case "D2020B":             $encrypted = true;             $rt = "preaes";             break;         case "D2020D":             $encrypted = true;             $rt = "posaes";             break;     }            switch ($ab)     {         case "EA10":             $proc[$rt]['key_pos'][] = $i+2;             for ($k=0; $k<count($proc[$rt]['key_pos']); $k++)             {                  $proc[$rt]['key'][$k] = $ulaz_array[  $proc[$rt]['key_pos'][$k]  ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +1 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +2 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +3 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +4 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +5 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +6 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +7 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +8 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +9 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +10 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +11 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +12 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +13 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +14 ]                                         .$ulaz_array[  $proc[$rt]['key_pos'][$k] +15 ];             }             break;     } } print_r($proc); ?> </pre>



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Konkretno za niz key evo rešenja
@preg_match_all("#(EA10)(.{32})#is", $p, $key_niz); print_r($key_niz[2]);

Nisam mogao da razumem da li je bitno $cde ako je $ab.
Probao sam i to da ubacim u izraz ali onda treba više od 32.



offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

Hvala, ali uhh bitno je, glava boli od ovoga hehe. Evo ovako da objasnim na drugi nacin o cemu se radi, stavicu po bojama one delove koji imaju medjuzavisnost a crnu cu staviti za nano.

$p = "018038D2020B014007030B00 09056701E2033E8C00E2033E8CFFE2033E8CFEEA10774D01F597EC449321F7A89193B2350EF0082156A371A77D9A6F8038D2020B014007030B00 08061501E2033E8C00E2033E8CFFE2033E8CFEEA10B558B153394A1C848F03AB6088EAB945F0081CAD682458D81A998038D2020B014007030B00 08061500E2033E8C00E2033E8CFFE2033E8CFEEA102EA149998F98850A635F100A17EB3DAEF008C7C5E9DC0E4E52618038D2020B014007030B00 09056700E2033E8C00E2033E8CFFE2033E8CFEEA10168F8F61B449B5EDBC92222CCB4E40A3F0087F53FDCC757CCF86";

Sta je nano? Nano je ustvari tacka posle koje ide nekoliko bajtova (u zavisnosti o cemu se radi) koje treba da ubacim u array. Znaci $p se stalno menja, nano se ne menja ali se menjaju pozicije nanoa i vrednosti, sto je problem. Znaci ako je nano d2020B onda je pre-enkripted true, ako je nano d2o2oD onda je pos-enkripted true. Nano ea10 daje vrednost triple des kljuca, 09 i 08 posle 030b00 je id, nano f008 daje crc vrednost, pa onda sve tako u krug. Znaci posto $p ima u sebi 4 boje u ovom primeru, idealno bi bilo spakovati u 4 niza sa kljucem 0,1,2,3 tipa [0]['provajder']['030b00'], [0]['tripledes']['xxxxxxx'] ...itd ali posto $p nije stalan, pojavljuje se nekad samo jedna boja, samim tim i size mu je manji. Ja sam napravio nesto, ali sta se desava. Kada stavim nano 4007 u jednoj boji da bude 030b11 pojavljuje se velika greska jer niz gde je nano 4007 kome sam promenio vrednost na kraju ima count 3, dok ostali imaju count 4, znaci medjuzavisnost koje sam oznacio bojama se mesaju, tj "mesaju se boje" i finalna vrednost koju treba da dobijem nije tacna zbog toga. Juce sam ceo dan pokusavao ovako onako jednostavno nemam ideju kako da to sredim. Problem je:
- sta ako niz [2] ili niz [1], nebitno, ima jednu razlicitu vrednost "030b11"
- sta ako jedan od nanoa ne postoji "jedan bude fake sa razlicitom vrednoscu"
Znaci boje nesmu da se mesaju i niz treba da se prilagodi naspram nanoa a svaka boja treba da je u nizu sa svojim kljucem

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Da li svaki nano ima konstantnu dužinu?
Da li $p uvek ima isti broj karaktera?
Probao sam malo drugačije da dodeljujem vrednosti $ab i $cde jer kad $i stigne do count($ulaz_array) ne može više da se dodaje $i+1, $i+2... pa samim tim vrednosti $ab i $cde nisu iste dužine kad stigne do kraja.

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

nano ima duzinu 4 ili preko niza gledano 2
$p nema stalnu duzinu "nekad bude 1 samo boja ili dve, ali nanoi u $p su uvek d202-4007-ea10-f008
nanoi menjaju poziciju

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

d202 - 2
4007 - 5
ea10 - 32
f008 - 16
To je redosled i šablon po kome se dobijaju vrednosti? Crna boja (ne bold) bitna ili ne?
Mislim da može preko regexa da se uradi ovo samo što imam milion pitanja Very Happy

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

crna ne bold nije bitna, ali pazi, pozicije nanoa se menjaju nisu fiksne ako si mislio staticki da im dodelis poziciju!

Na primer sledeca situacija totalno razlicite duzine i totalno drugi nano, ali postoji u sebi i ea10 i f008, i postoji 2xnano ea10 i nano f008...
019003030B08E2033E9100E2033E91FFE2033E91FEDD219703061508EA10CB0F4C260112445AD0CF2746A4137B17F0085C965DCA9FFBED6BEA10DC41E3B6A95E5F4A7AE878640C0CE647F00806352D0B97BCD427
znaci ne sme da napravi nijedan niz, mora da vrati die('') kontas, jako je komplikovno napraviti logiku a deluje prosto. Finalna stvar tj funkcija odradjuje na ovaj nacin:
foreach ovo-ono if provajder 030b00 i key 08, uzmi key sa id-eom 08 ili uzmi key sa id-eom09 than funkcija(dekode nano ea10) if crc nije ok probaj sledeci nano ea10 dok ne dobijes crc ok. If crc nije ok die(''), otprilike tako. Znaci najbitnija stvar mi je $p da bude pravilno odradjen tj idealno bi bilo da svaka boja bude u nizu sa svojim kljucem - da ne mesa boje a da logika bude ok tj da logika prepozna fake boju

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Kontam Smile
Nisam mislio da dodeljujem pozicije nego me zanima da li je dužina uvek ista u zavisnosti od nanoa.
Ne pozicija nego dužina posle nanoa ili kako već.

offline
  • Pridružio: 15 Jul 2009
  • Poruke: 150

aha ok
d202 - 2
4007 - 6
ea10 - 32
f008 - 16

offline
  • Pridružio: 15 Maj 2006
  • Poruke: 333
  • Gde živiš: Babušnica

Neće moći sa ovim regexom. Testirao sam 30b11 i problem... Probaću još nešto, trebalo bi da sam na pravom putu Smile

Ko je trenutno na forumu
 

Ukupno su 1014 korisnika na forumu :: 75 registrovanih, 7 sakrivenih i 932 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Agape, ajo baba, amonsrb, Andrija 1993, Boris90, BOXRR, bpvl, Bubimir, Dare, darkkran, darko_c, DeerHunter, Denaya, Dimitrise93, Dogma21, Dorcolac, dozorni, DragoslavS, DrNeoCortex, GeoM, Georgius, Hardenberg, IQ116, Ivica1102, Jakonjveliki, Kalem, kolle.the.kid, kreker, Kubovac, laurusri, lucko1, Macalone, Makeitdrip, Mcdado, mercedesamg, Mercury, Mi lao shu, Milometer, Milos ZA, mkukoleca, nebojsag, nenad81, Nikola70, NMNJ, nnnnnnnnnn, nobutado, oldtimer, opt1, pablojepao, Pero, Povratak1912, radionica1, royst33, ruger357, sabros, samojednoimeznam, sap, Slingshot, sol, SOVO515, ss10, Tas011, Tihi86, vathra, Vlada1389, vladaa012, vukovi, x9, Yellow Pinky, YU-UKI, zeo, zlatkoa987, zombicar153