Paste text to be encoded or decoded:
 Wrap Text

What is this web page primarily used for?    Two things. First, sometimes you get an email which wasn't decoded properly. If you want to clean that email up, you paste it in the above box and press the appropriate decode button. As to which button to press, just hover your mouse over each key and see if the pop-up description matches what your data looks like. The second thing this page is used for is to intentionally mess up some text -- either in a standard way or in a non-standard way.
Is this data going over the internet?    No. All the encoding and decoding takes place entirely on your computer. The actual programming is part of the web page and is run by the VBScript interpreter built in to Internet Explorer. Absolutely no information is sent in or out of your computer. If you want, you can even save this web page on your hard drive, disconnect from the internet, and still use it.
Is this encryption actually secure?    No, and more importantly, no! It isn't secure, and it isn't encryption -- it's encoding. The difference is that encoding is just a convenient way of representing something, while encryption is meant to intentionally hide the data. For example, "Base-64" encoding is done to allow messages and attachments to be sent over networks that were only meant for plain text. It isn't meant to encrypt or hide the data, it's merely a conversion to a different format.
Can this be made to at least act like encryption?    Yes. Encryption generally involves changing and re-ordering the data multiple times and in multiple ways. By using several of the available encoding options available here, you can minimally encrypt your data (safe from the average 8 year old or AOL user). Any person who views the resulting "encrypted" data will need to decode your message in the exact reverse order of how you encoded it in order to see the original text. My suggestion is to use B64 (button 5) encoding to scatter the bits between bytes, use the byte-swapping functions (buttons 7, 8, 9) to scatter the bytes within the message, then use an obscuring function (buttons 3, 4, 6) to make the data appear less structured. You may want to do this multiple times and throw in some of the data-padding functions (buttons *, 0, and #) to hide the true length of your message. Additionally, because the B64 and HEX decoders in this program will ignore unexpected characters, you can throw in random nonstandard characters after those encodings to make your data look like something else. I recommend using B64 with Word Wrap turned on as the final step to make it easy to copy and paste the end result into any document.
Why the fake phone keypad?    Well... For ordinary de-mangling of improperly decoded email, it's a bother. However, for the second purpose of this web page (intentionally messing up text for casual encryption), it's a help. A phone keypad is probably the most compact way of entering text or numbers. This allows you to easily remember the sequence you used to encode a file so you can later decode it with the reverse sequence.
Why do buttons keep getting disabled?    Due to a side-effect of the Internet Explorer "textarea" used to display the encoded and decoded text, if a carriage-return/linefeed pair (CRLF) is split into separate CR and LF, the textarea will automatically convert both into separate CRLF sequences. This corrupts the data and makes it impossible to recover the intended text! To prevent this from happening, functions which move bytes (buttons 7, 8, 9) and which could split CRLF pairs up are disabled if a CR or LF is present. Functions which might generate CR or LF characters (buttons 1, 2, 3) are disabled if using them would create a CR or LF. Button 9 gets disabled if the data is not the correct length to perform unpadded block encoding. If you pad the data, you will never have to add more than three characters before block encoding is possible. FYI, the B64 decoder used here ignores all unexpected characters, so it is always safe to pad or intersperse B64 data with non-B64-legal characters.
Can I steal the encoding and decoding functions used here?    Sure! I've placed all the code I wrote here in the public domain. That means you can steal the functions, use them elsewhere, and give me no credit at all. Of course, if someone else copyrighted one of the algorithms I used, you'll have to deal with them.