This morning I realized I could shave off 3 characters by eliminating one .join by adding () and converting + to | in the c= initialization. Also, for Ruby 1.9 only, one can save 8 more characters since string slices return 1-character strings in 1.9 instead of integers. I updated http://www.aarongifford.com/base64.rb.txt so it now has the original and the two improvements. And it adds a random data test on Unix-based hosts supporting reading random data from /dev/urandom Oh, I should add that performance is abysmal, but that obviously wasn't the goal. *chuckle* Aaron out.