Base64 Java Encode And Decode A String
Answer :
You can use following approach:
import org.apache.commons.codec.binary.Base64; // Encode data on your side using BASE64 byte[] bytesEncoded = Base64.encodeBase64(str.getBytes()); System.out.println("encoded value is " + new String(bytesEncoded)); // Decode data on other side, by processing encoded data byte[] valueDecoded = Base64.decodeBase64(bytesEncoded); System.out.println("Decoded value is " + new String(valueDecoded));
Hope this answers your doubt.
Java 8 now supports BASE64 Encoding and Decoding. You can use the following classes: java.util.Base64
, java.util.Base64.Encoder
and java.util.Base64.Decoder
.
Example usage:
// encode with padding String encoded = Base64.getEncoder().encodeToString(someByteArray); // encode without padding String encoded = Base64.getEncoder().withoutPadding().encodeToString(someByteArray); // decode a String byte [] barr = Base64.getDecoder().decode(encoded);
The accepted answer uses the Apache Commons package but this is how I did it using Java's native libraries
Java 11 and up
import java.util.Base64; public class Base64Encoding { public static void main(String[] args) { Base64.Encoder enc = Base64.getEncoder(); Base64.Decoder dec = Base64.getDecoder(); String str = "77+9x6s="; // encode data using BASE64 String encoded = enc.encodeToString(str.getBytes()); System.out.println("encoded value is \t" + encoded); // Decode data String decoded = new String(dec.decode(encoded)); System.out.println("decoded value is \t" + decoded); System.out.println("original value is \t" + str); } }
Java 6 - 10
import java.io.UnsupportedEncodingException; import javax.xml.bind.DatatypeConverter; public class EncodeString64 { public static void main(String[] args) throws UnsupportedEncodingException { String str = "77+9x6s="; // encode data using BASE64 String encoded = DatatypeConverter.printBase64Binary(str.getBytes()); System.out.println("encoded value is \t" + encoded); // Decode data String decoded = new String(DatatypeConverter.parseBase64Binary(encoded)); System.out.println("decoded value is \t" + decoded); System.out.println("original value is \t" + str); } }
The better way would be to try/catch
the encoding/decoding steps but hopefully you get the idea.
Comments
Post a Comment