Yes it is. If you think about it, to encrypt an array of bytes what you want to do is flip roughly half the bits of those bytes to make the numbers completely different. You can do this by XORing your array with an equal size array of nicely distributed pseudo random numbers which are reproducible by using some secret as the seed. The same process decrypts them again - this is symmetric encryption.
So as a simple insecure example, consider this:
Random r = new Random(<your secret seed, hashed from a password or like>);
byte[] yourData = .....
byte[] flips = new byte[yourData.Length];
r.NextBytes(flips);
for (int i = 0; i < yourData.Length; i++) yourData[i] ^= flips[i];
The Random class is not random enough for encryption, you need to delve into the crypto namespace for proper encryption strength encoding.
And, you might want to insert some redundant bytes on the end to make the encrypted representation a different length to avoid people being able to match encrypted and unencrypted data by their lengths alone.