/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Spørgsmål til xor og andre funktioner
Fra : Kasper Johansen


Dato : 28-08-05 13:17

Hej gruppe.

Jeg sad for sjovt skyld, og prøvede at lave en "Direct Connect"-protokol til
PHP, da jeg tror at protokollen har en masse muligheder - Ikke bare til
ulovlig fildeling ;) Men nok om det.


Under auth med en "hub" (en server) skal man igennem en masse crap. Blandt
andet skal man convertere en "lock" til en "key", som gøres på denne måde i
noget der kunne minde om C (jeg kan ikke C og aner ikke rigtig hvadfor en
syntaks det er faktisk).


for (i = 1; i < len; i++)
   key[i] = lock[i] xor lock[i-1];key[0] = lock[0] xor lock[len-1] xor
lock[len-2] xor 5for (i = 0; i < len; i++)
   key[i] = ((key[i]<<4) & 240) | ((key[i]>>4) & 15)

Hvad gør "xor" helt præcist?
Som jeg har forstået det, vil "xor" fungere på den måde at den returnere
sand, hvis kun det ene argument, og kun det ene, er sandt, ellers falskt.
Men hvordan virker det på "key[0] =" ???

Og hvad sker der helt præcist i sidste linje?


--
Mvh Kasper Johansen



 
 
Kasper Johansen (28-08-2005)
Kommentar
Fra : Kasper Johansen


Dato : 28-08-05 13:20

"Kasper Johansen" <kasper@johansen.tdcadsl.dk> skrev i en meddelelse
news:4311aaa6$0$7623$ba624c82@nntp02.dk.telia.net...
> for (i = 1; i < len; i++)
> key[i] = lock[i] xor lock[i-1];key[0] = lock[0] xor lock[len-1] xor
> lock[len-2] xor 5for (i = 0; i < len; i++)
> key[i] = ((key[i]<<4) & 240) | ((key[i]>>4) & 15)

Outlook Express er ikke ligefrem den bedste klient. Vi prøver igen uden copy
paste så min email-klient også kan følge med:


for (i = 1; i < len; i++)
key[i] = lock[i] xor lock[i-1];

The first key character is calculated from the first lock character and the
last two lock characters:

key[0] = lock[0] xor lock[len-1] xor lock[len-2] xor 5

Next, every character in the key must be nibble-swapped:

for (i = 0; i < len; i++)
key[i] = ((key[i]<<4) & 240) | ((key[i]>>4) & 15)



--
Mvh Kasper Johansen



Bertel Lund Hansen (28-08-2005)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-08-05 15:02

Kasper Johansen skrev:

> Hvad gør "xor" helt præcist?

XOR står for "exclusive or" - netop én af værdierne må være sand
for at resultatet skal blive sandt; ellers giver det falsk:

OR
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1

XOR
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0 NB!

Når man xor'er to tal, bliver de xor'et bitvis:

111 XOR 101 = 010

--
Bertel
http://bertel.lundhansen.dk/   http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste