random [long int]
The java.util.Random class gets initializied by using the seed given as a signed long int.
Every incoming byte is xored with the random bytes from the PRNG.
The nature of the PRNG is that it gives the same stream of numbers everytime you initialize it with the same seed. This way we can encode and decode on different computers, as long as the PRNG is implemented in the same way.