I made something similar to this a year ago (or more, I don't remember how long it's been). Only difference is hat it didn't use a randomly generated set of letters/numbers/symbols for replacement. It was a set string for each letter/number/etc. Also a decoder. It was just for fun with a few friends when we wanted to have random conversations in the channel without anyone knowing what it was. Lol. :P Looks good though.
Long time no see my friend.