> basically i'm implementing WEP dictionary attack for school.
If you are doing anything compute -intensive with collections of primitive
types (int, byte, etc) then you'd be /far/ better off putting the data into a
normal int[] or byte[] array.
> and then xor both together in order to
> retrieve the cipher text.
There's no built-in method of computing the elementwise XOR of two ArrayLists,
nor of doing the same with two byte[] arrays. You'll have to code it yourself
with a loop.
-- chris
christian.bongiorno@gmail.com - 24 Feb 2006 21:21 GMT
Actually,
Why couldn't he do this:
BigInteger entry1 = new BigInteger(someByteArrayFromKey)
BigInteger entry2 = new BigInteger(someByteArrayFromOtherKey);
BigInteger newEntry = entry1.xor(entry2);
Jobs done and he can use keys of any size
Christian
http://christian.bongiorno.org/resume.pdf
Chris Uppal - 25 Feb 2006 16:17 GMT
> BigInteger entry1 = new BigInteger(someByteArrayFromKey)
> BigInteger entry2 = new BigInteger(someByteArrayFromOtherKey);
>
> BigInteger newEntry = entry1.xor(entry2);
That's a neat idea.
You would have to be careful about the possibility of leading[*] zeros in the
data. You could keep track of the size of the input arrays, and ensure that
the output array is copied and shifted (if necessary) to be the same size as
the inputs. Another idea would be to force the inputs to have 0x01 and 0x02 in
position 0, computing the real xor for that position separately, and then stuff
that into position 0 of the result.
Overall, sadly, I think it's probably easier to use a loop.
-- chris
christian.bongiorno@gmail.com - 26 Feb 2006 23:15 GMT
Yeah, that's true. In an academic setting like his it won't matter. One
way of doing this would be to override xor() to assure the proper bit
maintenance. There is also BitSet -- but it doesn't take a convenient
byte[] input.