# How can you xor ArrayLists?

Discussion in 'Java' started by cryptogirl, Feb 24, 2006.

1. ### cryptogirlGuest

Can you xor Arraylist together? by using the ^ notation. I know the ^
is for integer representation so if i type cast it to Arraylist would
that be sufficient?

Thank you

cryptogirl, Feb 24, 2006

2. ### Robert KlemmeGuest

cryptogirl wrote:
> Can you xor Arraylist together? by using the ^ notation. I know the ^
> is for integer representation so if i type cast it to Arraylist would
> that be sufficient?

What would be the expected output of XORing two ArrayLists?

robert

Robert Klemme, Feb 24, 2006

3. ### cryptogirlGuest

What would be the expected output of XORing two ArrayLists?

basically i'm implementing WEP dictionary attack for school. And I
had to store all possible key stream in a hash table and a hash table
on take in type Object so my keystream were inputted into an Array
List. I'm going to have my plaint text and convert it to bytes and
place that into an array list. and then xor both together in order to
retrieve the cipher text.

cryptogirl, Feb 24, 2006
4. ### Chris UppalGuest

cryptogirl wrote:

> 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

Chris Uppal, Feb 24, 2006
5. ### Roedy GreenGuest

On 24 Feb 2006 08:42:40 -0800, "cryptogirl" <>
wrote, quoted or indirectly quoted someone who said :

>Can you xor Arraylist together? by using the ^ notation. I know the ^
>is for integer representation so if i type cast it to Arraylist would
>that be sufficient?

see the SortedArrayList class that allows various merging operations.

See http://mindprod.com/products1.html#SORTEDARRAYLIST

this is not APL, Operators work only on primitives.
--
http://mindprod.com Java custom programming, consulting and coaching.

Roedy Green, Feb 24, 2006
6. ### Guest

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

, Feb 24, 2006
7. ### Chris UppalGuest

wrote:

> 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

Chris Uppal, Feb 25, 2006
8. ### Guest

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.

, Feb 26, 2006
9. ### Shreyas Kothari

Joined:
Oct 28, 2014
Messages:
1
0
The following code might help you to get XOR of two ArrayList.
What I did was simply xoring all the elements of both the arraylist and storing then in a new arraylist.
For now we assume that arrayList1 and arrayList2 has some values in it.

ArrayList<Integer> newList = new ArrayList<Integer>();
for(i=0;i<arrayList1.size();i++){ //Both the arraylist has same size so no mater which you use for the looping conditon