Base64 Java Library

Base64 encoding and decoding of data from Java. Encode and decode methods for Strings, byte arrays, and streams.

Base64 is needed in many places other than its original use as an encoding format for transferring attachments in email. It can be used anytime binary or arbitrary data needs to be represented in common printable characters. For example to connect to a web page that requires a username and password (basic authentication) you need to Base64 encode the username and password.

Base64 is not Encryption

Be aware that Base64 encoding in not encryption. Base64 scrambles the output and it may appear to be unreadable, but it is easily deciphered by anybody with a little experience or time. Base64 encoded strings will often end in one or two equal signs, and they will have only letters, numbers, pluses, and slashes. Once somebody figures out that it is in Base64, it is just a matter of running the decode method on it. Furthermore, real encryption algorithms will change the entire output if one bit in the input changes. If you change a letter in a your message and then re-encode it with Base64, only a few characters will change. Base64 is not a substitute for encryption. Base64 used this way is obfuscation, and rather poor obfuscation at that. It may be a disservice to your users to use Base64 as obfuscation because it gives them the impression that their data is encrypted when it really isn't.

Command Line Program

To run Base64 as a stand alone program use the following command line: